java Singleton 的使用详解
return?singleton;???????????
?????? Volatile 变量具有?synchronized
?的可见性特性,但是不具备原子特性。这就是说线程能够自动发现 volatile 变量的最新值。
而volatile使用时有明确的规定:
—— 只有在状态真正独立于程序内其他内容时才能使用 volatile。
但是5的写法,虽然理论上似乎可以解决无序写入问题。实际上并非如此。
(我个人觉得这里对volatile语法说的不够详细,想知道详细的可以看这篇转帖Java 理论与实践: 正确使用 Volatile 变量?)
小结:1)使用同步锁方法,内部锁存在不安全。
2)静态成员直接初始化。
?