JSR内存屏障有四种,LoadLoad,StoreStore,LoadStore,StoreLoad。
Load,表示读指令,
Store,表示写指令,
两两组合,标识两个指令之间不可以进行重排序。
1,LoadLoad屏障:
对于这样的语句Load1;LoadLoad;Load2,
在Load2及后续读取操作要读取的数据被访问前,保证Load1要读取的数据被读取完毕、
2,StoreStore屏障:
对于这样得语句Store1;StoreStore;Store2,
在Store2及后续写入操作执行前,保证Store1的写入操作对其他处理器课件。
3,LoadStore屏障:
对于这样的语句Load1,LoadStore;Store2,
在Store2机后续写入操作被刷出前,保证load1要读取的数据被读取完毕。
4,StoreLoad屏障:
对于这样的语句Store1;StoreLoad;Load2
在load2及后续所有读取操作执行前,保证Store2的写入对所有处理器可见。