Java設計模式-單例模式-懶漢式(執行緒不安全)
- 2020 年 3 月 17 日
- 筆記
優缺點說明
1)起到了lazy loading的效果,但是只能在單執行緒下使用
2)如果在多執行緒下,一個執行緒進入了 if(singleton == null)判斷語句塊,還沒有來得及往下執行,另一個執行緒也通過了這個判斷語句,這時便會產生多個實例,所以在多執行緒環境下不可使用這種方式
3)在實際開發種,不要使用這種方式
public class SingletonTest02 { public static void main(String[] args) { Singleton02 instance = Singleton02.getInstance(); Singleton02 instance01 = Singleton02.getInstance(); System.out.println(instance == instance01); System.out.println("instance,hashCode = " + instance.hashCode()); System.out.println("instance01,hashCode = " + instance01.hashCode()); } } class Singleton02{ private static Singleton02 singleton; private Singleton02(){} public static Singleton02 getInstance(){ if(singleton == null){ singleton = new Singleton02(); } return singleton; } } // 運行結果 true instance,hashCode = 1846274136 instance01,hashCode = 1846274136