課程
/后端開發
/Java
/細說Java多線程之內存可見性
讀寫方法上面加了synchronized關鍵字,main方法里面代碼用一個for循環包裹起來循環20遍,還是有為0的結果。這樣的方法,實現原子性還是有問題的。
2019-03-01
源自:細說Java多線程之內存可見性 3-4
正在回答
根據你這個代碼應該是先執行了下邊的讀方法,你在寫方法下面,sleep一段時間,應該可以解決這個問題
這個可能是指令重排序,讀取方法中先執行了打印result,然后再對result賦值
你好,能否貼一下代碼
慕數據8406292 提問者
舉報
用兩種方式實現內存可見性,代領大家深層次學習Java中的內存
1 回答volatile不能保證原子性,解決方法
1 回答在write和方法上加synchronized不能保證結果一定是6
3 回答synchronized 原子性是如何保證線程的交叉執行?
1 回答最后總結中,為什么給long或double類型的變量加volatile關鍵字可以保證原子性?
2 回答加synchronized關鍵字之后,執行結果還是不確定
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2019-04-10
根據你這個代碼應該是先執行了下邊的讀方法,你在寫方法下面,sleep一段時間,應該可以解決這個問題
2019-04-10
這個可能是指令重排序,讀取方法中先執行了打印result,然后再對result賦值
2019-03-07
你好,能否貼一下代碼