volatile几个特性

特性1:防止该声明变量上下文指令重排。   

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

特性2:强制将修改值立即写入主存,写入时对已存在CPU的缓存行做无效处理。当运用该缓存是发现无效,则重新读取主存。

特性3:不具备原子性, 线程1对变量进行读取操作之后,被阻塞了的话,并没有对inc值进行修改。然后虽然volatile能保证线程2对变量inc的值读取是从内存中读取的,但是线程1没有进行修改,所以线程2根本就不会看到修改的值。

 

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