volatile幾個特性

特性1:防止該聲明變量上下文指令重排。   

(1、2、volatile、3、4),其中12順序可變,34順序可變 但是不能跨越volatile進行排序。

特性2:強制將修改值立即寫入主存,寫入時對已存在CPU的緩存行做無效處理。當運用該緩存是發現無效,則重新讀取主存。

特性3:不具備原子性, 線程1對變量進行讀取操作之後,被阻塞了的話,並沒有對inc值進行修改。然後雖然volatile能保證線程2對變量inc的值讀取是從內存中讀取的,但是線程1沒有進行修改,所以線程2根本就不會看到修改的值。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章