餓漢模式
餓漢模式是執行緒安全的,不需要關鍵字來保證執行緒安全,
class Singleton {
// 期望 singleton 是一個單例, 也就是只有一個實體
private static final Singleton instance = new Singleton();
public static Singleton getInstance() {
return instance;
}
private Singleton() {
}
}
懶漢模式
懶漢模式是執行緒不安全的,因此需要加
synchronized和volatile關鍵字修飾,
為什么要使用關鍵字修飾,可以參考我寫的另一篇博客 懶漢設計模式使用 volatile 關鍵字和兩個 if 判斷的原因
class Singleton {
// 3. 加 volatile 關鍵字
volatile private static Singleton instance = null;
public static Singleton getInstance() {
// 2. 外層判斷
if (instance == null) {
// 1. 內層加鎖判斷
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
}
private Singleton() {
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/293879.html
標籤:其他
上一篇:微信小程式逆向分析淺析
下一篇:三分鐘學會滲透測驗——資訊收集
