gpt4 book ai didi

java - 1.6 或 1.7 中是否修复了双重检查问题?

转载 作者:行者123 更新时间:2023-12-01 06:35:48 25 4
gpt4 key购买 nike

1.4 中存在双重检查问题 http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html后来的 JDK 中修复了吗?

最佳答案

一个简单的谷歌显示

  • 如果使用特定方式,它已在 Java 5 中修复(请参阅 Marko 的回答)
  • 这仍然不是一个好主意。通常,简单的枚举是更好的解决方案。

而不是写

public final class Singleton {
// Double-check idiom for lazy initialization of instance fields.
private static volatile Singleton instance;

private Singleton() {
}

public static Singleton getInstance() {
Singleton result = instance;
if (result == null) { // First check (no locking)
synchronized (Singleton.class) {
result = instance;
if (result == null) // Second check (with locking)
instance = result = new Singleton();
}
}
return result;
}
}

你可以直接写

public enum Singleton {
// Thread safe lazy initialization of instance field.
INSTANCE
}

关于java - 1.6 或 1.7 中是否修复了双重检查问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13451402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com