我喜欢 java 中“热切单例”的简单性,大多数关于它的文章都称其创建线程是安全的。
class Singleton {
public static final Singleton instance = new Singleton ();
private Singleton (){};
public static Singleton getInstance(){
return instance;
}
}
但是,我听到一些声称它的创建毕竟可能不是线程安全的。例如,一位消息人士声称,如果使用超过 1 个类加载器或应用程序域,则是不安全的。
JVM 是否保证“Eager Singleton”的创建是线程安全的,例如,2 个线程不会意外地同时创建单例?
编辑:对象创建的线程安全是否需要关键字 final?如果该字段不是最终的,它不是线程安全的吗?
缥缈止盈
aluckdog
天涯尽头无女友
相关分类