LL: load1 LoadLoad load2:禁止load1才做和load2操作重排序
SS:store1 Store Store store2;禁止store1才做和store2操作重排序
SL:store1 Store Load load2:
LS:loan1 Load Store store
----------------------------------------------
strore是写操作,load是读操作
-----------------------------------------------
volatile写之前加SS屏障,之后加SL屏障
volatile读之后加LL和LS屏障,具体情况在能保证最终一致性的情况下可能会忽略多余屏障:
例如有时会省略LS屏障,因为下文的写操作根本不可能越过上文的读操作