JAVA——緩衝流(字元流 read方法)
阿新 • • 發佈:2020-09-02
/// <summary> /// 單例模式的實現 /// </summary> public class Singleton { // 定義一個靜態變數來儲存類的例項 private static Singleton uniqueInstance; // 定義一個標識確保執行緒同步 private static readonly object locker = new object(); // 定義私有建構函式,使外界不能建立該類例項 private Singleton() { } /// <summary> /// 定義公有方法提供一個全域性訪問點,同時你也可以定義公有屬性來提供全域性訪問點 /// </summary> /// <returns></returns> public static Singleton GetInstance() { // 當第一個執行緒執行到這裡時,此時會對locker物件 "加鎖", // 當第二個執行緒執行該方法時,首先檢測到locker物件為"加鎖"狀態,該執行緒就會掛起等待第一個執行緒解鎖 // lock語句執行完之後(即執行緒執行完之後)會對該物件"解鎖" // 雙重鎖定只需要一句判斷就可以了 if (uniqueInstance == null) { lock (locker) { // 如果類的例項不存在則建立,否則直接返回 if (uniqueInstance == null) { uniqueInstance = new Singleton(); } } } return uniqueInstance; } }