趁周末,把之前的书拿出来,再翻一番,顺便作个笔记: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并发编程方向的理论基础知识。