課程
/后端開發
/Java
/細說Java多線程之內存可見性
不是說volatile不保證原子性嗎?為什么對于64位類型的變量用volatile修飾?
2017-08-05
源自:細說Java多線程之內存可見性 5-1
正在回答
對于32位操作系統,64位變量的讀取同樣不是一個原子操作,需要volidate保證原子性
64位 會分成兩個32位執行
對于不加valatile的64位變量,JVM會分成兩次讀寫.
加了volatile一次完成.
jaba?c
修飾只是保證了一次讀寫,不會分成2次。
加了volatile就會一次讀寫,不會分為兩次讀寫。跟volatile不能保證原子性沒有關系。
我也有同樣的問題
應該是syn吧
舉報
用兩種方式實現內存可見性,代領大家深層次學習Java中的內存
1 回答volatile不能保證原子性,解決方法
1 回答最后總結中,為什么給long或double類型的變量加volatile關鍵字可以保證原子性?
2 回答volatile原子性
1 回答關于64位變量加volatile關鍵字的問題
2 回答volatile原子性問題
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2019-04-03
volatile
2019-04-03
對于32位操作系統,64位變量的讀取同樣不是一個原子操作,需要volidate保證原子性
2018-09-02
64位 會分成兩個32位執行
2018-08-31
對于不加valatile的64位變量,JVM會分成兩次讀寫.
加了volatile一次完成.
2018-08-05
2018-07-18
修飾只是保證了一次讀寫,不會分成2次。
2017-08-14
加了volatile就會一次讀寫,不會分為兩次讀寫。跟volatile不能保證原子性沒有關系。
2017-08-12
我也有同樣的問題
2017-08-08
應該是syn吧