3 volatile变量规则: 对于一个volatile域的写,happens-before于任意后续对这个volatile域的读 两个操作具有happens-before关系,只需要前一个操作对后一个操作可见,且前一个操作按顺序排在第二个操作之前. 内存屏障: 确保指令重排序时不会将其后面的代码排到内存屏障之前 确保指令重排序时不会将其前面的代码排到内存...
内存屏障是组CPU指令。它的作用主要有两个:禁止重排序和写主内存。 插入一个内存屏障,相当于告诉CPU和编译器出现在这个内存屏障之前的命令必须先执行,然后再执行这个内存屏障之后的其他命令。 内存屏障另一个作用是强制更新一次不同CPU的缓存。例如,一个写屏障会把这个屏障前写入的数据刷新到主存,这样任何试图读取该...