課程
/后端開發
/Java
/細說Java多線程之內存可見性
能不能解釋一下,代碼不是順序執行的嗎
2015-05-23
源自:細說Java多線程之內存可見性 3-3
正在回答
只有數據依賴關系才會禁止指令重排序,1.1和1.2沒有數據依賴關系,2.1和2.2是控制依賴關系,所以也會進行重排序
不懂,有沒有懂得,再解釋下
代碼的執行順序不一定就是代碼的書寫順序。編譯器或者處理器在執行的時候,為了提高運行效率和性能,會做一些優化,因此可能會打亂指令執行順序。
舉報
用兩種方式實現內存可見性,代領大家深層次學習Java中的內存
4 回答為什么Thread.activeCount() > 1 不能運行
1 回答volatile不能保證原子性,解決方法
4 回答運行了以后等了好久,500個線程也執行不完是為什么?
2 回答加synchronized關鍵字之后,執行結果還是不確定
2 回答as-if-serial語義部分的不理解
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2020-11-24
只有數據依賴關系才會禁止指令重排序,1.1和1.2沒有數據依賴關系,2.1和2.2是控制依賴關系,所以也會進行重排序
2018-03-15
不懂,有沒有懂得,再解釋下
2015-12-14
代碼的執行順序不一定就是代碼的書寫順序。編譯器或者處理器在執行的時候,為了提高運行效率和性能,會做一些優化,因此可能會打亂指令執行順序。