IntelliJ可以为单例类自动生成模板,如下所示:

public class A {
    private static A ourInstance = new A();

    public static A getInstance() {
        return ourInstance;
    }

    private A() {
    }
}

这种实现单例线程安全吗? 我已经阅读了有关通过枚举实现线程安全单例的信息。 我想知道上面的实现是否也是线程安全的。 由于“ ourInstance”已定义为静态且已初始化为类变量,因此应该只有该对象的一个​​副本。

===============>>#1 票数:1

是的,此实现是线程安全的。 在此类或其任何实例对其余Java代码可用之前,请确保静态字段已初始化且可见。

===============>>#2 票数:1 已采纳

您需要将final添加到static变量ourInstance以防止以后进行任何修改,然后您将拥有一个完美的线程安全singleton

  ask by nishant translate from so

未解决问题?本站智能推荐: