1. 程式人生 > >單例設計模式的設計——懶漢式+同步方法

單例設計模式的設計——懶漢式+同步方法

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方法只能在同一時刻被一個執行緒所訪問,效能低下。
 * */