文章 39
评论 43
浏览 115076
大白话之Java多线程join方法:开局一张图,试学一分钟,你就费和我一样,理解介个方法

大白话之Java多线程join方法:开局一张图,试学一分钟,你就费和我一样,理解介个方法

前言 有次偶尔接触到了Thread.join()方法,便到网上去查阅相关资料,但也是看得我一头雾水(天下文章一般抄)。在我很久的理解之后,便想将我理解的join()方法以一张图的方式解释出来。 要学习本篇文章,你需要理解以下知识: 多线程 & Thread (点我学习) 仔细看 开局扔张图: 我绘制的这张图以时间线的形式解释了主线程和各个被实例化的John线程的运行过程。 别着急,多看两遍! 我们可以看到,在主线程调用了join()方法后,指定的线程会被抓回来在后边老老实实地排队。 猜一下 问:请回答未执行join()方法和执行了join()方法的运行结果有什么不同(可能有几种结果、运行的时间、输出的顺序)? 💡—!> 答: 类型可能结果数量运行速度输出顺序时间复杂度(最好) 不使用join()6种快(多线程)乱序O(1) 使用join()1种慢(单线程)顺序O(n) Q&A 看完后,你可能还会有些疑问: Q:为什么不使用join()的可能结果数量是6种?输出顺序为什么是乱序? A:由于多线程的原因,虽然start()顺序执行了线程1/2/3,....

死钻技术 | 绝不抄袭