Java内存模型:如图1
线程通信:如图2
重排序:程序效率
happens-before:满足即不会重排序
内存屏障指令:禁止重排序的实现
数据依赖性:单个线程存在即不会重排
as-if-serial:保证重排对单个线程的结果无影响
数据竞争:正确同步则没有竞争且具有顺序一致性
顺序一致性:保证可见性和一致性
同步:包括对常用同步原语(lock,volatile和final)的正确使用
原文:http://blog.csdn.net/coslay/article/details/44576995