多執行緒模式中的單例
阿新 • • 發佈:2019-01-31
單例相關知識參考《》。單例模式,最常見的就是飢餓模式、懶漢模式,一個直接例項化物件,一個在呼叫方法時進行例項化物件。在多執行緒模式中,考慮到效能和執行緒安全問題,我們一般選擇下面兩種比較經典的單例模式,在效能提高的同時,又保證了執行緒安全。
dubble check instance
//懶漢式單例類.在第一次呼叫的時候例項化自己 public class Singleton { private Singleton() {} private static Singleton single=null; //靜態工廠方法 public static Singleton getInstance() { if (singleton == null) { synchronized (Singleton.class) { if (singleton == null) { singleton = new Singleton(); } } } return singleton; } }
static inner class
public class Singleton {
private static class LazyHolder {
private static final Singleton INSTANCE = new Singleton();
}
private Singleton (){}
public static final Singleton getInstance() {
return LazyHolder.INSTANCE;
}
}