infoq的这篇文章讲的不错 双重检查锁定与延迟初始化
这篇讲volatile关键字也不错 volatile关键字
1.基于volatile的双重检查锁定 --实例、静态字段
2.内部类,基于类初始化 --- 静态字段
JSR-133只保证单线程和正确同步(这里的同步指的是广义上的同步,包括对lock,volatile,final的正确使用)的多线程程序的内存可见性
在JSR-133中,未同步或未正确同步的多线程程序可能会发生内存可见性问题。
在JSR-133中,volatile并未完全禁止编译器和处理器的重排序,它只是禁止了那些“可能有害”的重排序
本文部分摘取自网络,如有侵权,请联系我删除。