懒汉式(线程不安全)
优缺点说明
起到了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;
}
}