趁週末,把之前的書拿出來,再翻一番,順便作個筆記:java
內存屏障:用來控制和規範cpu對內存操做的順序的cpu指令。編程
內存屏障列表:併發
1.loadload:確保「前者數據裝載」先於「後者裝載指令」;rest
2.storestore:確保「前者數據」先於「後者數據」刷入系統內存,且,「前者刷入系統內存的數據」對「後者是可見的」;內存
3.loadstore:確保「前者裝載數據」先於「後者刷新數據到系統內存」;基礎
4.storeload:確保「前者刷入系統內存」的數據對「後者加載數據」是可見;cpu
volatile的內存語義的(JVM)實現策略:數據
1.在每一個volatile寫操做前,會插入一個storeload屏障;volatile
2.在每一個volatile寫操做後,會插入一個storeload屏障;系統
3.在每一個volatile讀操做後,會插入一個loadstore屏障和loadload屏障。
其上爲java併發編程方向的理論基礎知識。