特性1:防止该声明变量上下文指令重排。
(1、2、volatile、3、4),其中12顺序可变,34顺序可变 但是不能跨越volatile进行排序。
特性2:强制将修改值立即写入主存,写入时对已存在CPU的缓存行做无效处理。当运用该缓存是发现无效,则重新读取主存。
特性3:不具备原子性, 线程1对变量进行读取操作之后,被阻塞了的话,并没有对inc值进行修改。然后虽然volatile能保证线程2对变量inc的值读取是从内存中读取的,但是线程1没有进行修改,所以线程2根本就不会看到修改的值。
特性1:防止该声明变量上下文指令重排。
(1、2、volatile、3、4),其中12顺序可变,34顺序可变 但是不能跨越volatile进行排序。
特性2:强制将修改值立即写入主存,写入时对已存在CPU的缓存行做无效处理。当运用该缓存是发现无效,则重新读取主存。
特性3:不具备原子性, 线程1对变量进行读取操作之后,被阻塞了的话,并没有对inc值进行修改。然后虽然volatile能保证线程2对变量inc的值读取是从内存中读取的,但是线程1没有进行修改,所以线程2根本就不会看到修改的值。