join()
把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行
比如线程B中调用了线程A的join()方法,线程A执行完成后,线程B才会开始执行
使用案例
/**
*
* 现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行
*
*/
public class JoinDemo {
static class T1 extends Thread{
@Override
public void run() {
Thread.currentThread().setName("T1");
System.out.println(getName() + "执行");
}
}
static class T2 extends Thread{
@SneakyThrows
@Override
public void run() {
T1 t1 = new T1();
t1.start();
t1.join();
Thread.currentThread().setName("T2");
System.out.println(getName() + "执行");
}
}
static class T3 extends Thread{
@SneakyThrows
@Override
public void run() {
T2 t2 = new T2();
t2.start();
t2.join();
Thread.currentThread().setName("T3");
System.out.println(getName() + "执行");
}
}
public static void main(String[] args) {
T3 t3 = new T3();
t3.start();
}
}