您显示的代码在技术上不是线程安全的。这种狡猾的代码通常会造成混乱。
该代码应如下所示:
public class Singleton { private static class SingletonHolder { public static final Singleton instance = new Singleton(); } public static Singleton getInstance() { return SingletonHolder.instance; } }
在这里,我们在(
SingletonHolder)的静态初始化程序中进行分配,任何以正确 的事前发生
关系访问它的线程都可以看到它。嵌套类没有什么特别的,它只允许使用外部类而无需立即构造单例对象。几乎可以肯定,这是完全 没有意义的,但似乎可以使某些人满意。
和以往一样,[ 可变 ]单例是一个 非常糟糕的 主意。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)