Java线程的联合
发布日期:2021-05-07 14:41:18 浏览次数:20 分类:原创文章

本文共 1327 字,大约阅读时间需要 4 分钟。

      线程A在运行期间,可以调用线程B的join()方法,让线程B和线程A联合。这样,线程A就必须等待线程B执行完毕后,才能继续执行。如下面示例中,“爸爸线程”要抽烟,于是联合了“儿子线程”去买烟,必须等待“儿子线程”买烟完毕,“爸爸线程”才能继续抽烟。

线程的联合-join():

public class TestThreadState {    public static void main(String[] args) {        System.out.println("爸爸和儿子买烟故事");        Thread father = new Thread(new FatherThread());        father.start();    }} class FatherThread implements Runnable {    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 {    public void run() {        System.out.println("儿子出门去买烟");        System.out.println("儿子买烟需要10分钟");        try {            for (int i = 1; i <= 10; i++) {                System.out.println("第" + i + "分钟");                Thread.sleep(1000);            }        } catch (InterruptedException e) {            e.printStackTrace();        }        System.out.println("儿子买烟回来了");    }}

      执行结果如图11-8所示:

 

上一篇:Java获取线程基本信息的方法
下一篇:Java终止与暂停线程

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2025年04月13日 18时56分06秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章