/**
* 演示join方法的使用
*
* 线程A,执行了线程B的join方法,线程A必须要等待B执行完成了以后,线程A才能继续自己的工作
*/
public class UseJoin {
static class JumpQueue implements Runnable {
private Thread thread;//用来插队的线程
public JumpQueue(Thread thread) {
this.thread = thread;
}
@Override
public void run() {
try {
System.out.println(thread.getName() + " will be join before " + Thread.currentThread().getName());
thread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + " -- terminted.");
}
public static void main(String[] args) throws InterruptedException{
System.out.println("开始");
Thread previous = Thread.currentThread();//现在是主线程
for (int i = 0; i < 10; i++) {
//i=0,previous 是主线程,
//i=1;previous是i=0这个线程
Thread thread = new Thread(new JumpQueue(previous), String.valueOf(i));
System.out.println(previous.getName() + " jump a queue the thread:" + thread.getName());
thread.start();
previous = thread;
}
Thread.sleep(2000);//让主线程休眠2秒
System.out.println(Thread.currentThread().getName() + " terminate.");
System.out.println("结束");
}
}
}
Thread的join方法
最新推荐文章于 2023-03-17 17:54:58 发布