/**
* join() 方法: 当 A 程序中某一时刻 调用了 B.join() ,则阻塞 A 去执行 B,直到 B 被执行完,A 继续执行
* join(long ms) 方法: 原理同上,只是 A 等待 B 执行的时间为 n ms 当超过时间则继续执行,不等待了。
*
* @author Liu Huan
*/
class ControlThread extends Thread {
// 定义一个构造器,给当前线程 命名
public ControlThread(String name) {
super(name);
}
// 重写 run 方法
@Override
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(getName() + " " + i);
}
}
}
class ControlTest {
public static void main(String[] args) throws InterruptedException {
for (int i = 0; i < 10; i++) {
System.out.println(Thread.currentThread().getName() + " " + i);
if (i == 5) {
var ct = new ControlThread("被join线程");
ct.start();
ct.join();
}
}
}
}
运行结果: