据我所知,在旧的JMM中,实现惰性单板机的DCL (双重检查锁定)技巧被打破了,但我认为它是用新的JMM和易失性字段修复的.
然而,在这尼斯的文章中,显然是新的,应该引用新的和旧的JMM和DCL中的易失性字段,指出它仍然是坏的。
我到处读到它是固定的,然后我发现.有人能不能说它到底坏了还是坏了?
我的理解是,有了不稳定的保证之前的关系和有效的发行成员解决问题和DCL现在是有效的。我也同意静态懒惰更好理解.
发布于 2015-06-25 13:15:51
它是用Java 5修复的。
然而,现在“正确”(也就是最简单的)方法是使用枚举来进行延迟初始化。
public enum Singleton {
INSTANCE;
// No need for a getInstance() method
//public static Singleton getInstance() {
// return INSTANCE;
//}
// Add methods to your liking
}https://stackoverflow.com/questions/31051353
复制相似问题