懶漢式(線程不安全)
優缺點說明
-
起到了Lazy Loading的效果,但是只能在單線程下使用
-
如果在多線程下, 一個線程進入if(singleton == null)判斷 語句塊,還未來得及往下執行,另一個線程也通過了這個判斷語句,這時便會產生多個實例.
所以在多線程的環境下,不可使用種方式
- 結論:在實例開發中,不要使用這種方式(因為他有潛在的危險,就不能用,他就有錯誤了,不可用,不可用,不可用!)
代碼演示
package com.atguigu.principle.singleton.type03;public class SingletonTest03 {public static void main(String[] args) {}
}class Singleton{private static Singleton instance;private Singleton() {}// 提供一個靜態的公有方法,當使用到該方法時,才去創建instance// 即懶漢式public static Singleton getInstance() {if (instance == null) {instance = new Singleton();}return instance;}
}
更多:http://victorfengming.gitee.io/design_pattern/