Join方法使用
场景:有T1,T2,T3三个线程,如何保证T2在T1执行后执行,T3在T2后执行?
/**
* @author wenhui
* @description 有T1,T2,T3三个线程,如何保证T2在T1执行后执行,T3在T2后执行?
* @Date 2019/12/15
*/
class T extends Thread {
@Override
public void run() {
for(int i = 0; i < 30; i++) {
System.out.println(getName()+"---"+i);
}
}
}
public class JoinTest02 {
public static void main(String[] args) throws InterruptedException {
T t1 = new T();
T t2 = new T();
T t3 = new T();
t1.start();
t1.join(); // 让其他线程等待,只有当前线程执行完毕,才会释放
t2.start();
t2.join();
t3.start();
}
}
输出结果:
Thread-0—0
Thread-0—1
Thread-0—2
Thread-0—3
Thread-0—4
Thread-0—5
Thread-0—6
Thread-0—7
Thread-0—8
Thread-0—9
Thread-0—10
Thread-0—11
Thread-0—12
Thread-0—13
Thread-0—14
Thread-0—15
Thread-0—16
Thread-0—17
Thread-0—18
Thread-0—19
Thread-0—20
Thread-0—21
Thread-0—22
Thread-0—23
Thread-0—24
Thread-0—25
Thread-0—26
Thread-0—27
Thread-0—28
Thread-0—29
Thread-1—0
Thread-1—1
Thread-1—2
Thread-1—3
Thread-1—4
Thread-1—5
Thread-1—6
Thread-1—7
Thread-1—8
Thread-1—9
Thread-1—10
Thread-1—11
Thread-1—12
Thread-1—13
Thread-1—14
Thread-1—15
Thread-1—16
Thread-1—17
Thread-1—18
Thread-1—19
Thread-1—20
Thread-1—21
Thread-1—22
Thread-1—23
Thread-1—24
Thread-1—25
Thread-1—26
Thread-1—27
Thread-1—28
Thread-1—29
Thread-2—0
Thread-2—1
Thread-2—2
Thread-2—3
Thread-2—4
Thread-2—5
Thread-2—6
Thread-2—7
Thread-2—8
Thread-2—9
Thread-2—10
Thread-2—11
Thread-2—12
Thread-2—13
Thread-2—14
Thread-2—15
Thread-2—16
Thread-2—17
Thread-2—18
Thread-2—19
Thread-2—20
Thread-2—21
Thread-2—22
Thread-2—23
Thread-2—24
Thread-2—25
Thread-2—26
Thread-2—27
Thread-2—28
Thread-2—29