volatile-禁重排案例详解

在每一个volatile写操作前面插入一个StoreStore屏障--->StoreStore屏障可以保证在volatile写之前,其前面所有的普通写操作都已经刷新到主内存中。

在每一个volatile写操作后面插入一个StoreLoad屏障--->StoreLoad屏障的作用是避免volatile写与后面可能有的volatile读/写操作重排序

在每一个volatile读操作后面插入一个LoadLoad屏障--->LoadLoad屏障用来禁止处理器把上面的volatile读与下面的普通读重排序

在每一个volatile读操作后面插入一个LoadStore屏障--->LoadTore屏障用来禁止处理器把上面的volatile读与下面的普通写重排序

案例说明(volatile读写前或后加了屏障保证有序性):

volatile-禁重排案例详解_第1张图片

volatile-禁重排案例详解_第2张图片


volatile-禁重排案例详解_第3张图片

【精选】volatile 禁止指令重排序_volatile怎么禁止指令重排_一条柴_Alex的博客-CSDN博客 

你可能感兴趣的:(JUC并发编程与源码分析,java,jvm,开发语言)