volatile 作用簡單總結

volatile 作用:1:保證可見性;2:防止指令重排 ;3:一定的原子性


1:共享元素的改變,直接寫回主存中,同時通知其餘線程刷新緩存,讀取最新的值,防止髒讀;
2:對於沒有依賴的指令,jvm會進行指令重排,有可能使程序失效;
3.原子性(保證一定的原子性),可以保證對於double 的操作,是原子性的,不會在程序對其進行操作的時候,被打斷,造成髒讀;至於保證一定的原子性
  而言,主要是針對long,和double而言,因爲這兩個是64位,正常來說是進行兩次的讀取,volaile可以保證原子性,但是對於 i++的話 這時候i++也是不保證原子性的,不管是不是volatile,因爲有兩步操作。
  要保證完整性一般用線程同步。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章