单例模式(懒汉式)

2020-11-28  本文已影响0人  bin丶


以下方式均不推荐开发使用,仅供学习

I. 线程不安全的懒汉式

package singleton;

/**
 * 懒汉式(懒汉式-线程不安全)
 */
public class Singleton_3 {

    private static Singleton_3 instance;

    private Singleton_3(){}

    // 对外提供一个静态方法。 仅有在被使用时才创建
    public static Singleton_3 getInstance() {
        if (instance == null) {
            instance = new Singleton_3();
        }

        return instance;
    }
}

优点

缺点

II. 线程安全的懒汉式

package singleton;

/**
 * 懒汉式(懒汉式-线程安全)
 */
public class Singleton_4 {

    private static Singleton_4 instance;

    private Singleton_4(){}

    // 对外提供一个静态方法。 仅有在被使用时才创建
    // 加入 synchronized 关键字, 解决线程安全问题
    public static synchronized Singleton_4 getInstance() {
        if (instance == null) {
            instance = new Singleton_4();
        }

        return instance;
    }
}

优点

缺点

上一篇下一篇

猜你喜欢

热点阅读