volatile的指令禁重排
重排序
案例
volatile有关的禁止指令重排的行为
四大屏障的插入情况
- 在每一个volatile写操作前面插入一个storestore屏障,storestore屏障可以保证在volatile写之前,其前面的所有普通写操作都已经刷新到主内存。
- 在每一个volatile写操作后面插入一个storeload屏障,storeload屏障的作用是避免volatile写与后边的有可能的volatile读写操作重排序。
- 在每一个volatile读操作后面插入一个loadload屏障,loadload屏障用来禁止把上边的volatile读与下边的普通读重排序。
- 在每一个volatile读操作后面插入一个loadstore屏障,loadstore屏障用来禁止处理器吧上面的volatile读与下面的普通读重排序。
案例
案例说明