趣文网 > 作文大全

一篇不到300字短文 带你彻底理解Java中Thread.join实现原理

2020-12-14 14:40:01
相关推荐

一句话说明Thread.join作用

Thread.join()可以使当前线程等待目标线程结束之后才继续运行。

Thread.join使用方式

如上述代码所示,可以把main线程当作当前线程,A、B线程当作目标线程。那么Thread.join()方法在示例代码中保证A线程执行完毕再执行B线程,B执行完毕再执行main线程后续代码,从而保证了线程的顺序执行。

Thread.join实现原理

Thread.join源码如下:

如源码所示,Thread.join()实际上调用的是Thread.join(millis)方法,Thread.join()相当于Thread.join(0)。

Thread.join(millis)是一个被synchronized修饰的非静态同步方法,即synchronized锁的是Thread实例对象。

Thread.isAlive()是用来判断线程是否终止,终止则返回false。Thread.join(millis)检查线程未中终则调用wait()方法来暂定当前线程运行。同时Java虚拟机会在目标线程run方法执行结束时调用目标线程对象的notifyAll()方法来唤醒目标线程对象中的等待线程,当然也会唤醒通过Thread.join(millis)来暂定运行的线程。

总结:Thread.join()相当于Thread.join(0),通过目标线程对象的wait和notifyAll方法来实现。

参考

《Java多线程实战指南(核心篇)》第五章——线程间协作

END

笔者是一位热爱互联网、热爱互联网技术、热于分享的年轻人,如果您跟我一样,我愿意成为您的朋友,分享每一个有价值的知识给您。喜欢作者的同学,点赞+转发+关注哦!

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

放鞭炮作文600字 高中作文开头 好好活儿作文 父母的爱400字作文 日出作文400字 元宵节的灯会作文 广州塔作文600字 相像作文 描写仓鼠的作文 日落作文300字四年级 我的缺点作文400字 妈妈哭了作文300字 描写秋天的银杏树作文 我的偶像成龙英语作文 高考作文全国卷 性格特点作文 二年级手工制作作文 戒骄戒躁作文 游北固山作文 七年级下英语作文30篇 我的宠物作文英语 600字初中作文写景 学校的春天作文600字 关于狼的作文 小学生作文培训班 关于劳动节的作文 描写白云的作文 网购的利弊作文 我家的小乌龟作文300字 二年级作文ppt