課程
/后端開發
/Java
/細說Java多線程之內存可見性
join()方法是否有類似于synchronized關鍵字的功能。但join()感覺是將多線程干成了單線程
2016-02-22
源自:細說Java多線程之內存可見性 3-1
正在回答
synchronized是java語言特性,join()方法你可以理解為僅僅是Thread類作者提供的一個覺得可能較為通用的工具方法。在B對象的方法中執行ThreadA.join()方法,其結果是在B對象方法調用處,通過死循環檢測ThreadA是否死亡(isAlive()方法),如果死亡(理解為ThreadA的run()方法運行結束)則繼續B對象的方法后續代碼執行。建議閱讀join()方法源碼
把指定的線程加入到當前線程,可以將兩個交替執行的線程合并為順序執行的線程。比如在線程B中調用了線程A的Join()方法,直到線程A執行完畢后,才會繼續執行線程B。差不多
問度娘
舉報
用兩種方式實現內存可見性,代領大家深層次學習Java中的內存
2 回答用Join關鍵字替換While那個判斷效果是一樣的嘛?
1 回答volatile不能保證原子性,解決方法
1 回答在write和方法上加synchronized不能保證結果一定是6
2 回答?主內存與java內存區域(堆,方法區)有什么區別?
3 回答讀寫方法上面加了synchronized關鍵字,不能保證原子性
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-10-10
synchronized是java語言特性,join()方法你可以理解為僅僅是Thread類作者提供的一個覺得可能較為通用的工具方法。在B對象的方法中執行ThreadA.join()方法,其結果是在B對象方法調用處,通過死循環檢測ThreadA是否死亡(isAlive()方法),如果死亡(理解為ThreadA的run()方法運行結束)則繼續B對象的方法后續代碼執行。建議閱讀join()方法源碼
2016-06-14
把指定的線程加入到當前線程,可以將兩個交替執行的線程合并為順序執行的線程。比如在線程B中調用了線程A的Join()方法,直到線程A執行完畢后,才會繼續執行線程B。差不多
2016-02-23
問度娘