其实我了解到的方式无非这几种:
- 使用join
- 使用单个线程池
- 使用jdk1.5以后提供的JUC包的内容比如信号量、屏障…
第一种
public static void main(String[] args) {
Thread t1 = new Thread(() -> System.out.println("t1"));
Thread t2 = new Thread(() -> {
try {
//引用t1线程,等待t1线程执行完
t1.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("t2");
});
Thread t3 = new Thread(() -> {
try {
//引用t2线程,等待t2线程执行完
t2.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("t3");
});
t3.start();
t2.start();
t1.start();
}