重排序的解决方法

通过volatile标记,可以解决编译器层面的可见性与重排序问题。而内存屏障则解决了硬件层面的可见性与重排序问题

A.store指令和load指令
store:将cpu缓存的数据刷新到主存中
load:将主存中的数据拷贝进cpu

B.内存屏障的种类
重排序的解决方法
C.volatile写实现的内存屏障
重排序的解决方法

a.StoreStore屏障可以保证在volatile写之前,其前面的所有普通写操作已经对任意处理器可见了
b.storeload屏障可以保证写完了再读取数据

D.volatile读实现的内存屏障
重排序的解决方法
当volatile读为第一操作时,不能和任何第二操作发生重排序