Singleton单例模式
生活随笔
收集整理的這篇文章主要介紹了
Singleton单例模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。
在計算機系統中,線程池、緩存、日志對象、對話框、打印機、顯卡的驅動程序對象常被設計成單例。
看下執行結果
實例化對象動作執行了4次,說明并發情況下有問題;
改下實現方式,增加鎖
public static Singleton Instance(){if (singleton == null){lock (lockObj){Console.WriteLine("實例化對象");singleton = new Singleton();}}return singleton;}看下執行結果
依然不能保證
加鎖并雙重驗證
public static Singleton Instance(){if (singleton == null){lock (lockObj){if (singleton == null){Console.WriteLine("實例化對象");singleton = new Singleton();}}}return singleton;}看下執行結果
這下就不會有并發的問題了
轉載于:https://www.cnblogs.com/sands/p/11460249.html
總結
以上是生活随笔為你收集整理的Singleton单例模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Abstract Factory抽象工厂
- 下一篇: Nuget打包类库及引用