java与内存屏障
内存屏障的作用是对重排序做出限定。
内存屏障有四种, LoadLoad、StoreStore、LoadStore、StoreLoad。
组成元素有两种, Load、Store。
Load的含义是加载,Load时会优先读cpu高速缓存(即线程私有的栈),若缓存失效,才去内存中读取。
而Store的含义是装载,Store的目的地直指内存(即堆),所以,普通变量的写并不算是Store, 因为它们写的目的地是高速缓存,而不是内存。
内存屏障中,StoreLoad格外特殊, 它的意思是 “Store happens-before Load”, 言外之意, StoreLoad之前的写 应在 其之后的读操作前,将当前高速缓存中的数据载入内存。

浙公网安备 33010602011771号