hooyantsing's Blog

P31 单例(线程不安全懒汉式)

字数统计: 213阅读时长: 1 min
2020/11/08

尚硅谷Java设计模式(图解+框架源码剖析)

懒汉式(线程不安全)

优点:起到了懒加载的效果,但是只能在单线程下使用。

缺点:如果在多线程下,一个线程进入了if(singleton == null)判断语句块,还未来得及向下执行,另一个线程也通过了这个判断语句,这时便会产生多个实例。所以在多线程环境下不可使用这种方式。

结论:在实际开发中,不要使用这种方式。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Singleton {
// 1.构造器私有化,防止外部new
private Singleton(){}

// 2.类本身内部创建对象实例
private static Singleton instance;

// 3.提供一个公有的静态方法,当使用该方法时,才去创建 instance
public static Singleton getInstance(){
if(instance == null){
instance = new Singleton();
}
return instance;
}
}
CATALOG
  1. 1. 懒汉式(线程不安全)