package com.it;
/**
* 测试join方法
*/
public class TestThreadState_join {
public static void main(String[] args) {
Thread father = new Thread(new FatherThread());
father.start();
}
}
class FatherThread implements Runnable {
@Override
public void run() {
System.out.println("爸爸想抽烟,发现烟抽完了");
System.out.println("爸爸让儿子去买烟");
Thread son = new Thread(new SonThread());
son.start();
System.out.println("爸爸等儿子买烟回来");
try {
son.join();
} catch (InterruptedException e) {
e.printStackTrace();
System.out.println("爸爸出门找儿子跑哪儿去了");
// 结束JVM,如果是0,则表示正常结束,如果是非0,则表示异常结束
System.exit(1);
}
System.out.println("爸爸高兴的接过烟抽起来了");
}
}
class SonThread implements Runnable {
@Override
public void run() {
System.out.println("儿子出门去买烟");
System.out.println("儿子买烟需要十分钟");
try {
for (int i = 0; i <= 10; i++) {
System.out.println("儿子买烟过去了"+i+"分钟");
Thread.sleep(1000);
}
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
System.out.println("儿子买烟回来了");
}
}
Java-测试线程的join()方法
最新推荐文章于 2024-10-06 20:29:51 发布
本文通过Java代码展示了如何使用join方法实现父子线程之间的交互,父亲线程等待儿子线程完成买烟任务后继续执行。
摘要由CSDN通过智能技术生成