https://blog.csdn.net/dl88250/article/details/5439024spa
http://www.infoq.com/cn/articles/double-checked-locking-with-delay-initialization.net
讲的很是好,解释了为啥须要在 Double Check 中用到 volatile 关键字。blog
双重检查模式对于除了 long 和 double 的基本类型是适用的。get
对于引用类型,则须要定义成volatile变量才不会出现问题。(得是在遵循 JSR133 规范的 Java 中)it