IntelliJ的java单例线程安全吗
IntelliJ可以为singleton类自动生成模板,如下所示:
public class A {
private static A ourInstance = new A();
public static A getInstance() {
return ourInstance;
}
private A() {
}
}
这个单例线程的实现是安全的吗?我读过有关通过枚举实现线程安全的单例的内容。我想知道上面的实现是否也是线程安全的。由于“ourInstance”已定义为静态并初始化为类变量,因此应该只有一个对象副本
# 1 楼答案
您需要将
final
添加到static
变量ourInstance
以防止以后的任何修改,然后您将拥有一个完美的线程安全singleton
# 2 楼答案
是的,这个实现是线程安全的。静态字段保证在该类或其任何实例可供其余java代码使用之前初始化并可见