懒汉式(线程不安全)

优缺点说明

  1. 起到了Lazy Loading的效果,但是只能在单线程下使用

  2. 如果在多线程下, 一个线程进入if(singleton == null)判断 语句块,还未来得及往下执行,另一个线程也通过了这个判断语句,这时便会产生多个实例.

    所以在多线程的环境下,不可使用种方式

  3. 结论:在实例开发中,不要使用这种方式(因为他有潜在的危险,就不能用,他就有错误了,不可用,不可用,不可用!)

代码演示

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;
    }
}


results matching ""

    No results matching ""