我已经阅读了他的 Singleton 的基本 Java 实现,因为我将在我的课程中介绍设计模式:
public final class ClassSingleton {
private static ClassSingleton INSTANCE;
private String info = "Initial info class";
private ClassSingleton() {
}
public static ClassSingleton getInstance() {
if(INSTANCE == null) {
INSTANCE = new ClassSingleton();
}
return INSTANCE;
}
// getters and setters
}
用过几次,就很熟悉了。然而,当我深入研究这个话题时,我发现这个版本根本不是线程安全的。
这到底是什么意思?如果多个线程访问它并创建一个新实例,是否会创建更多不同的实例?或者“安全”在哪里不复存在?
提前感谢您的回答。