当前位置:   article > 正文

多线程--关于Thread的join方法_thread jin

thread jin

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、Thread的join方法。

join()的使用场景
在很多情况下,主线程创建并启动子线程,如果子线程中要进行大量的耗时运算,主线程将可能早于子线程结束。如果主线程需要知道子线程的执行结果时,就需要等待子线程执行结束了。主线程可以sleep(xx),但这样的xx时间不好确定,因为子线程的执行时间不确定,join()方法比较合适这个场景。

二、方便理解引入例子

1.代码示例

代码如下(示例):

	public static void main(String[] args) {
        Thread t = new Thread(() -> System.out.println("test"));
        t.start();
        System.out.println("main1");
        try {
            t.join();
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("main2");
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

2.输出结果

代码如下(示例):

main1
test
main2
  • 1
  • 2
  • 3

test
main1
main2
  • 1
  • 2
  • 3

总结

Thread.join方法是将指定线程加入当前线程,将两个交替执行的线程转换成顺序执行。
上面的例子中,语句t.join(),在主线程中,调用线程t的join方法,将线程t加入主线程中,先执行完线程t,再执行主线程。
main1和test虽然会随机输出,但join方法后的代码(输出main2),一定会在线程t的run方法输出test之后执行。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/197750
推荐阅读
相关标签
  

闽ICP备14008679号