在多线程中有多种方法让线程按特定顺序执行,你可以用线程类的
join
()
方法在
一个线程中启动另一个线程,另外一个线程完成该线程继续执行。本质上就变成了“单线程进行执行”。
为了确保三个线程的顺序你应该先启动最后一个
(T3
调用
T2
,
T2
调用
T1)
,这样
T1
就会先完成而
T3
最后完成
代码举例:
public class JoinTest {
public static void main(String[] args) {
// 创建线程对象
Thread t1 = new Thread(() -> {
System.out.println("t1");
}) ;//匿名内部类重写方法,进一步用Lamda方式进行表达;
Thread t2 = new Thread(() -> {
try {t1.join(); // 加入线程t1,只
有t1线程执行完毕以后,再次执行该线程
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("t2");
}) ;
Thread t3 = new Thread(() -> {
try {
t2.join(); // 加入线程
t2,只有t2线程执行完毕以后,再次执行该线程
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("t3");
}) ;
// 启动线程
t1.start();
t2.start();
t3.start();
}
}