亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

設計模式C#實現(六)——單例模式

2019-11-14 15:48:45
字體:
來源:轉載
供稿:網友

單例模式:保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。

 

構成:

1.私有的構造函數

2.私有靜態的實例

3.返回實例的靜態方法

  public class Singleton    {        PRivate static Singleton uniqueInstance = new Singleton();        private Singleton() { Console.WriteLine("this is a new singleton"); }        public static Singleton getInstance()        {            if (uniqueInstance == null)            {                return uniqueInstance;            }            return uniqueInstance;        }    }

 

這種叫做餓漢模式,實例在類加載時就創建了,缺點是如果實例如果消耗大量的資源而沒有使用就會造成浪費,另一種懶漢模式,實例在被使用時才創建,

  public class Singleton    {        private static Singleton uniqueInstance;        private Singleton() { Console.WriteLine("this is a new singleton"); }        public static Singleton getInstance()        {            if (uniqueInstance == null)            {                return uniqueInstance = new Singleton();            }            return uniqueInstance;        }    }

但是這不是線程安全的

例如

class Program {             static void Main(string[] args) {            while (true) {                Thread t1 = new Thread(Test);                t1.Start();            }        }        static void Test() {            Singleton s = Singleton.getInstance();        }           }

執行的結果有可能是這樣

程序創建了多個實例,這不是我們想要的結果,原因是某個線程if (uniqueInstance == null)語句執行后讓出了使用權,當它重新獲得CPU使用權的時候,可能別的CPU已經創建了實例,而它并不知道,繼續執行return uniqueInstance= new Singleton();導致出現多個實例。

因此,要為方法加鎖

  public class Singleton    {        private static Singleton uniqueInstance;        private Singleton() { Console.WriteLine("this is a new singleton"); }        private static readonly object syncRoot = new object();        public static Singleton getInstance()        {            lock (syncRoot)            {                if (uniqueInstance == null)                {                      return uniqueInstance = new Singleton();                }            }            return uniqueInstance;        }    }

但是這又帶來了一個問題,在實例已經創建完成了,但還是會有大量的線程卡在lock (syncRoot),它們都還會嘗試創建實例,這降低了性能

為此,還要為此方法創建另外一個驗證

 public static Singleton getInstance()        {            if (uniqueInstance == null)            {                lock (syncRoot)                {                    if (uniqueInstance == null)                    {                       return uniqueInstance = new Singleton();                    }                }            }            return uniqueInstance;        }

此時,當實例已經創建完成之后,各線程不再訪問臨界區,提高了性能

 

單例模式和靜態類的比較

1.單例模式可以懶加載,靜態類執行更快(為什么?),即在不同條件下二者有不同的性能表現

2.單例可以繼承和override

3.單例易于模擬,利于測試

4.單例利于維護狀態信息

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美裸身视频免费观看| 亚洲最大福利视频网| 色偷偷av一区二区三区乱| 欧美日韩精品中文字幕| 亚洲欧美另类中文字幕| 欧美精品免费在线观看| 在线国产精品视频| 久久久欧美精品| 亚洲视频在线观看免费| 国产999精品久久久影片官网| 欧美日韩黄色大片| 亚洲天堂av在线播放| 亚洲精品一区久久久久久| 夜夜嗨av一区二区三区四区| 精品人伦一区二区三区蜜桃网站| 亚洲第一精品自拍| 懂色av中文一区二区三区天美| 亚洲a∨日韩av高清在线观看| 亚洲**2019国产| 国产91网红主播在线观看| 狠狠操狠狠色综合网| 91日韩在线播放| 国产精品揄拍500视频| 欧美丰满老妇厨房牲生活| 精品国产乱码久久久久酒店| 亚洲在线第一页| 久久不射热爱视频精品| 欧美性生交大片免网| 91在线色戒在线| 欧美日韩精品中文字幕| 欧美精品亚州精品| 久久欧美在线电影| 亚洲精品欧美一区二区三区| 国产69久久精品成人看| 成人午夜小视频| 亚洲最大激情中文字幕| 91av中文字幕| 亚洲肉体裸体xxxx137| 亚洲第一av在线| 亚洲一区亚洲二区| 国产精品日韩一区| 国产精品丝袜白浆摸在线| 久久国产精品影视| 久久久人成影片一区二区三区观看| 美日韩精品免费视频| 日韩美女视频免费在线观看| 欧美激情第一页xxx| 欧美精品福利在线| 国产亚洲精品久久久| 久久精品国产成人精品| 日本精品久久久久影院| 国产精品扒开腿做爽爽爽的视频| 久热国产精品视频| 91网站免费看| 久久综合久久88| 亚洲区bt下载| 国产成人精品日本亚洲| 在线激情影院一区| 久久久久久亚洲| 欧美激情性做爰免费视频| 亚洲国语精品自产拍在线观看| 国产丝袜一区二区三区免费视频| 久久综合伊人77777蜜臀| 2021久久精品国产99国产精品| 欧美精品成人91久久久久久久| 这里只有精品久久| 45www国产精品网站| 国产亚洲欧美日韩一区二区| 国产91精品久| 欧美又大粗又爽又黄大片视频| 日本不卡高字幕在线2019| 亚洲xxxxx电影| 九九热在线精品视频| 亚洲天堂第一页| 精品久久久久久久中文字幕| 国产精品久久久91| 亚洲电影第1页| 55夜色66夜色国产精品视频| 亚洲美女视频网站| 国产一区二区三区在线免费观看| 日韩高清av一区二区三区| 亚洲精品久久视频| 日本一区二区不卡| 亚洲一二在线观看| 欧美与黑人午夜性猛交久久久| 亚洲男人天堂古典| 亚洲最新av网址| 狠狠色香婷婷久久亚洲精品| xvideos亚洲| 亚洲理论电影网| 国产香蕉精品视频一区二区三区| 久久久久久亚洲精品| 欧美一区二区三区……| 欧美野外猛男的大粗鳮| 成人免费视频97| 91午夜理伦私人影院| 精品女同一区二区三区在线播放| 视频在线观看99| 91av免费观看91av精品在线| 日本午夜人人精品| 91九色国产在线| 日韩av网站在线| 日韩欧美国产激情| 91国产精品91| 97色在线观看免费视频| 992tv成人免费影院| 亚洲欧美中文在线视频| 久久九九亚洲综合| 欧美成人免费在线视频| 久热在线中文字幕色999舞| 久久精品国产免费观看| 色综合久久精品亚洲国产| 国产精品久久久久久久久久久久久| 亚洲自拍另类欧美丝袜| 亚洲第一精品夜夜躁人人躁| 黄色91在线观看| 亚洲欧洲在线视频| 国产精品爽爽爽爽爽爽在线观看| 亚洲成人久久电影| 成人欧美一区二区三区在线| 欧美性猛交xxxxx水多| 国产亚洲美女精品久久久| 精品国产户外野外| 亚洲欧美制服丝袜| 欧洲一区二区视频| 国产成人精品久久亚洲高清不卡| 日韩精品免费在线视频观看| 欧美国产日产韩国视频| 91亚洲国产成人久久精品网站| 在线观看国产欧美| 国产精品久久久久久久美男| 日韩国产精品视频| 久久久999精品免费| 国产美女精品视频免费观看| 91久久精品久久国产性色也91| 精品一区二区电影| 中文字幕亚洲一区在线观看| 91精品国产一区| 日韩va亚洲va欧洲va国产| 欧美久久久精品| 亚洲第一福利网| 免费不卡欧美自拍视频| 欧美夫妻性视频| 国产精品电影在线观看| 一区国产精品视频| 日韩高清电影好看的电视剧电影| 在线视频中文亚洲| 欧美成人激情图片网| 国产精品永久免费视频| 在线不卡国产精品| 在线观看欧美视频| 91免费视频网站| 欧美成人免费一级人片100| 精品国产自在精品国产浪潮| 久久久久日韩精品久久久男男| 亚洲一区二区三区成人在线视频精品| 亚洲精品久久久久久久久久久| 日韩美女主播视频| 亚洲精品自拍视频| 欧美综合在线第二页| 欧美一级视频在线观看| 欧美久久精品一级黑人c片| 日产精品久久久一区二区福利| 国产精品2018|