作者:LinHrU | 来源:互联网 | 2023-05-28 13:48
1> veritas..:
英特尔处理器x86具有强大的内存模型.
因此,所有屏障StoreStore,LoadLoad,LoadStore都是x86上的no-op.
StoreLoad除外,可以通过 mfence或cpuid或锁定insn实现.您已经可以使用汇编代码确认.其他障碍只是意味着限制编译器优化和转换,因此它们不会破坏java内存模型规范.
当你在intel处理器上运行时,我假设它的x86.
请阅读
http://gee.cs.oswego.edu/dl/jmm/cookbook.html供参考.
http://psy-lob-saw.blogspot.com/2013/08/memory-barriers-are-not-free.html
http://jsr166-concurrency.10961.n7.nabble.com/x86-NOOP-memory-barriers-td9991.html
Lock不是指令,而是指令前缀(表现为storeLoad屏障).
"锁定"指令在x86汇编中意味着什么?
为什么我们需要在CMPXCHG之前使用锁前缀