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