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