課程
/后端開發
/Java
/細說Java多線程之內存可見性
有個問題想問一下:最后一節的總結部分說讀64位數據的問題為什么用volatile來修飾呀,volatile不是沒有原子性嗎
2015-05-17
源自:細說Java多線程之內存可見性 5-1
正在回答
64位可以能會拆成兩個32位的
32bit數據的讀寫是一個原子操作,對64bit數據加volatile僅僅只是保證數據的讀寫具有不可重入性以及可見性——這樣就夠了。第一個32bit讀完之后,才允許讀第二個32bit,且必須從主線程內存中刷新,這樣可以保證數據的有效性。
舉報
用兩種方式實現內存可見性,代領大家深層次學習Java中的內存
2 回答解決原子性問題
1 回答求大神解答這個程序為什么運行出來沒有顯示窗體,求解答
3 回答Thread.yiled問題
5 回答synchronized問題
1 回答多線程問題
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2020-11-30
64位可以能會拆成兩個32位的
2016-01-02
32bit數據的讀寫是一個原子操作,對64bit數據加volatile僅僅只是保證數據的讀寫具有不可重入性以及可見性——這樣就夠了。第一個32bit讀完之后,才允許讀第二個32bit,且必須從主線程內存中刷新,這樣可以保證數據的有效性。