懒汉式(线程不安全)
优缺点说明
-
起到了Lazy Loading的效果,但是只能在单线程下使用
-
如果在多线程下, 一个线程进入if(singleton == null)判断 语句块,还未来得及往下执行,另一个线程也通过了这个判断语句,这时便会产生多个实例.
所以在多线程的环境下,不可使用种方式
- 结论:在实例开发中,不要使用这种方式(因为他有潜在的危险,就不能用,他就有错误了,不可用,不可用,不可用!)
代码演示
package com.atguigu.principle.singleton.type03;public class SingletonTest03 {public static void main(String[] args) {}
}class Singleton{private static Singleton instance;private Singleton() {}// 提供一个静态的公有方法,当使用到该方法时,才去创建instance// 即懒汉式public static Singleton getInstance() {if (instance == null) {instance = new Singleton();}return instance;}
}
更多:http://victorfengming.gitee.io/design_pattern/