单例设计模式的设计——懒汉式+同步方法

package SingleInstanceModel;

/**
 * Created by JYM on 2019/1/8
 * 单例模式:懒汉式+同步方法
 * 懒汉式的方式可以保证实例的懒加载,但无法保证实例的唯一性。*/

//final不允许被继承
public final class Singleton_2
{
    //实例变量
    private byte[] data = new byte[1024];

    private static Singleton_2 instance = null;

    private Singleton_2()
    {}

    //向getInstance方法加入同步控制,每次只能有一个线程能够进入
    public static synchronized Singleton_2 getInstance()
    {
        if (null == instance)
        {
            instance = new Singleton_2();
        }
        return instance;
    }
}

/**
 * 采用懒汉式+数据同步的方式既满足了懒加载又能够百分之百地保证instance实例的唯一性,但是synchronized关键字
 * 天生的排他性导致了getInstance方法只能在同一时刻被一个线程所访问,性能低下。
 * */

猜你喜欢

转载自blog.csdn.net/leying521/article/details/86130049