【并发编程】--- Thread类中的join方法

源码地址:https://github.com/nieandsun/concurrent-study.git

1 join方法执行原理

原理如下:
在这里插入图片描述
注意: 只有先开启了线程,在进行join才有效。


2 join方法测试

  • 测试代码
package com.nrsc.ch1.base;

import com.nrsc.utils.SleepUtils;

public class JoinStudy {

    static class LiuNeng implements Runnable {

        public void run() {
            System.out.println("LiuNeng开始排队打饭.....");
            SleepUtils.second(2);//休眠2秒
            System.out.println(Thread.currentThread().getName()
                    + " LiuNeng打饭完成.");
        }
    }

    static class ZhaoSi implements Runnable {

        public void run() {
            SleepUtils.second(2);//休眠2秒
            System.out.println("ZhaoSi开始排队打饭.....");
            System.out.println(Thread.currentThread().getName()
                    + " ZhaoSi打饭完成.");
        }
    }

    public static void main(String[] args) throws Exception {
        //创建赵四线程
        ZhaoSi zhaoSi = new ZhaoSi();
        Thread zsThread = new Thread(zhaoSi);

        //创建刘能线程
        LiuNeng liuNeng = new LiuNeng();
        Thread lnThread = new Thread(liuNeng);

        //开启刘能线程
        lnThread.start();
        //刘能开始join --- 注意,只有先开启了线程,join才有效
        lnThread.join();

        //开启赵四线程,并join
        zsThread.start();
        zsThread.join();

        System.out.println("谢广坤开始排队打饭.....");
        SleepUtils.second(2);//让主线程休眠2秒
        System.out.println(Thread.currentThread().getName() + " 谢广坤打饭完成.");
    }
}
  • 测试结果

在这里插入图片描述

可以看到join可以让线程顺序的执行。

发布了208 篇原创文章 · 获赞 248 · 访问量 46万+

猜你喜欢

转载自blog.csdn.net/nrsc272420199/article/details/104734211