單例設計模式的設計——懶漢式+同步方法
阿新 • • 發佈:2019-01-09
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方法只能在同一時刻被一個執行緒所訪問,效能低下。 * */