【发布时间】:2019-11-26 09:55:33
【问题描述】:
由于双重锁检查在优化的编译器上不起作用,我将其从我的单例类中删除,而不是进行早期初始化。
下面是我的新单例类:
class MySingleton {
private static volatile MySingleton myInstance = new MySingleton();
public static getInstance() {
return myInstance;
}
}
除了getInstance(),类中还有设置成员字段值的setter方法。
希望当多个线程使用同一个对象更新各个成员字段时,此实现不会导致任何数据不一致。
欢迎提出任何建议或意见。
【问题讨论】:
-
@HadiJ 我完全同意我需要定义一个私有构造函数。但我想这将是线程安全的,并且不需要同步,因为静态字段将在类加载期间创建。由于我的引用是静态的,因此任何尝试访问的线程都可以使用它。
标签: multithreading design-patterns java-8 singleton