繁体   English   中英

IntelliJ的Java单例线程安全吗

[英]Is IntelliJ's java singleton thread-safe

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

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

    public static A getInstance() {
        return ourInstance;
    }

    private A() {
    }
}

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM