單例模式:保證同乙個類只有乙個物件例項;
主要複習三種實現方式:餓漢、飽漢、雙重校驗鎖
1.餓漢 模式:
/**
* 單例模式之餓漢模式
* 類載入時即建立例項物件
* */
public class singletona
public static singletona getinstance()
}
2.飽漢模式:
/**
* 單例模式之飽漢模式
* */
public class singletonb
public static synchronized singletonb getinstance()
return singleton;
}}
3.雙重校驗鎖:
volatile作用:
2.保證可見性:執行緒a在自己的工作執行緒內建立了例項,但此時還未同步到主存中;此時執行緒b在主存中判斷instance還是null,那麼執行緒b又將在自己的工作執行緒中建立乙個例項,這樣就建立了多個例項。
volatile禁止指令重排序只能保證volatile修飾的**之後的**不會在它之前執行。
設計模式複習 單例模式
單例模式,可以說是設計模式種最簡單的模式了,因為它只有乙個物件,這也就呼應了它的名字 單例模式 至於為什麼只有乙個物件,下面會進一步講述。這裡先說說單例模式的使用場景吧,在此我總結了以下幾種 1.資料共享。例如 執行緒池,需要管理執行緒的數量 2.提高效率,降低記憶體損耗。例如 db連線池,連線的是...
設計模式複習 單例模式
設計模式 單例模式 singleton 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問節點。懶漢模式涉及多執行緒上鎖問題,餓漢模式不涉及多執行緒上鎖問題 下面實現懶漢跟餓漢模式,先不考慮上鎖問題,最後補充。設計模式 迭代器模式 iterator 提供一種方法順序訪問乙個聚合物件中的各個元素,而...
設計模式之單例模式複習總結
單例模式 單例模式就是該類在整個程式的使用過程中有且僅有乙個例項。也就是它的構造方法是私有的,該類負責建立自己的物件,同時確保只有乙個物件被建立。當有些封裝的類會去重複載入,使用單例模式可以節省資源。單例模式有哪些?還有列舉,列舉的可讀性差就先不看了 懶漢模式 懶漢模式就是用到就通過呼叫getsta...