网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
可签
7
级以上的吧
50
个
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
02月27日
漏签
0
天
java吧
关注:
1,246,553
贴子:
12,723,301
看贴
图片
吧主推荐
视频
游戏
3
回复贴,共
1
页
<返回java吧
>0< 加载中...
[多线程]Thread.join(),深度解析
取消只看楼主
收藏
回复
乱世丶钱德勒
淼淼淼淼
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
上课时讲到了join这个方法,本来是一笔带过的,后来遇到问题没想到问题接踵而至...join()功能大家都知道但是当你看到Java.Thread.join()的源码时你就感觉好困惑,为此我来个深度解析,在多线程里不深度你永远都不会理解其中的真谛.
送TA礼物
IP属地:北京
1楼
2014-10-28 20:35
回复
乱世丶钱德勒
淼淼淼淼
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
通过运行一段测试代码
然后运行结果:
Hi 0
Hi 1Hi 2Hi 3Hi 4Hi 5Hi 6Hi 7
Main is down!
----------------------------
在这个运行结果中我们看到确实是如果join()方法所解释的一样当前线程停止直至调用join()方法的线程运行结束后开始继续执行.当然问题是看到源码之后(可能是我笨吧一直没想到)
IP属地:北京
4楼
2014-10-28 20:41
回复
收起回复
官渡区天互软件开发工作室
快速开发平台,采用
java
+.Net两大主流技术,在平台基础上可进行二次少代码开发,大数据+流程引擎,快速打造工作流程中台,节省80%的开发成本和时间,点击立即使用。
2025-02-27 16:26
广告
立即查看
乱世丶钱德勒
淼淼淼淼
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
通过源码看到
这个方法是同步不可重写的方法,如果当我们调用了无参数的join方法时,代码将进入if(millis == 0)的代码块里,在这里不停的判断线程是否存活,如果存活将被等待挂起,关键是迷惑在于synchronized关键字修饰,如我们线程B调用join方法将锁住B的,应该B等待,那为什么它还在运行呢,而且主线程等待.
IP属地:北京
5楼
2014-10-28 20:46
回复
收起回复
乱世丶钱德勒
淼淼淼淼
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
其实在到代码b.join()时,其实是当前线程(main)去调用的join(),嗯,所以直接阻塞main线程,直到调用join()方法的线程死亡,
IP属地:北京
7楼
2014-10-28 20:55
回复
收起回复
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧热议榜
1
现在文娱作品有点令人觉得别扭
2804580
2
吧友选出贴吧第一喷子
2385685
3
PSPlus3月会免游戏公布
2028180
4
如何看待UP北极熊近期争议?
1945620
5
大话王?Bin哥语录合订本来了
1497860
6
乌美矿产协议是不平等条约吗
1215075
7
美队4上映13天票房才破亿
882840
8
日本米价暴涨甩锅给中国
862385
9
好起来了!崩铁3.1剧情风评逆转
640816
10
雷军力克钟睒睒成为中国新首富
553644
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示