为什么静态内部类单例线程安全?

为什么静态内部类单例线程安全?,第1张

为什么静态内部类单例线程安全?

您显示的代码在技术上不是线程安全的。这种狡猾的代码通常会造成混乱。

该代码应如下所示:

public class Singleton  {        private static class SingletonHolder { public static final Singleton instance = new Singleton();    }    public static Singleton getInstance() { return SingletonHolder.instance;        }    }

在这里,我们在(

SingletonHolder
)的静态初始化程序中进行分配,任何以正确 的事前发生
关系访问它的线程都可以看到它。嵌套类没有什么特别的,它只允许使用外部类而无需立即构造单例对象。几乎可以肯定,这是完全 没有意义的,但似乎可以使某些人满意。

和以往一样,[ 可变 ]单例是一个 非常糟糕的 主意。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5488272.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存