Java設計模式-單例模式-懶漢式(執行緒安全)

  • 2020 年 3 月 17 日
  • 筆記

優缺點說明

1)解決了執行緒不安全問題

2)效率太低了。每個執行緒在想獲得類的實例時候,執行getInstance()方法都要進行同步。而其實這個方法只執行一次實例化程式碼就夠了,後面的想獲得該類實例,直接return就行了。方法進行同步效率太低

3)結論:在實際開發種,不推薦使用這種方式

public class SingletonTest03 {      public static void main(String[] args) {          Singleton03 instance  = Singleton03.getInstance();          Singleton03 instance01 = Singleton03.getInstance();            System.out.println(instance == instance01);          System.out.println("instance,hashCode= " + instance.hashCode());          System.out.println("instance01,hashCode= " + instance01.hashCode());      }  }    class Singleton03{      private static Singleton03 instance;      private Singleton03(){}      public static synchronized Singleton03 getInstance(){          if(instance == null){              instance = new Singleton03();          }          return instance;      }  }    // 運行結果  true  instance,hashCode= 1846274136  instance01,hashCode= 1846274136