【Java多线程】方法join的使用

场景描述

主线程启动子线程,如果子线程中要进行大量的耗时运算,主线程会早于子线程结束,这时候主线程如果想等待子线程完成之后再运行,就需要join()方法

代码示例

package top.yuyufeng.demo.thread;

/**
 * @author yuyufeng
 * @date 2019/2/22.
 */
public class Demo2Join {
    public static void main(String[] args) {
        try {
            MyTask t1 = new MyTask();
            t1.start();
            //主线程等待子线程执行完成之后再结束  join()的作用是等待线程对象销毁
            t1.join();
            System.out.println("等t1执行完成之后再执行");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    static class MyTask extends Thread{
        @Override
        public void run() {
            try {
                int secondValue = (int) (Math.random() * 1000);
                System.out.println("secondValue:"+secondValue);
                Thread.sleep(secondValue);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

join()的内部是用wait()方法实现的

发布了154 篇原创文章 · 获赞 142 · 访问量 35万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览