线程安全的Singleton要点

Posted shuada

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程安全的Singleton要点相关的知识,希望对你有一定的参考价值。

1、privat static Singleton 要加votatile关键字修饰,防止对象的初始化代码与引用赋值代码进行重排序。

2、getInstance方法,最外层要加if (instance == null),然后加锁synchronized,然后再加if (instance == null)的判断

3、内层if (instance == null) 判断的作用是,如果没有这个内层的判断,多个线程都进入了外层的if (instance == null) 判断,并在锁的地方等待,那么势必会依次创建N个重复的对象,不是单例了。

以上是关于线程安全的Singleton要点的主要内容,如果未能解决你的问题,请参考以下文章

Meyers 实现的 Singleton 模式线程安全吗?

怎么实现一个线程安全的单例模式

单例模式(Singleton Pattern)

Singleton实例声明为GetInstance方法的静态变量,它是否是线程安全的? [重复]

设计模式Singleton

Spring Controller单例与线程安全那些事儿