国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

C++/CLI中實現singleton模式

2019-11-17 05:12:48
字體:
來源:轉載
供稿:網友

  雙重檢測鎖(Double-Checked Locking)實現的Singleton模式在多線程應用中有相當的價值。在ACE的實現中就大量使用ACE_Singleton模板類將普通類轉換成具有Singleton行為的類。這種方式很好地消除了一些重復代碼臭味,而且,優化后的性能較標準互斥版本提高15倍。最近在用C++/CLI做一些工作,Singleton不可避免地需要用到,于是我又制造了一次車輪。  

  1 #PRagma once

  2

  3 /** /class sidle::Singleton

  4 /brief Singleton (Double-Checked Locking)

  5 /author 吳爾平

  6 /version 1.0

  7 /date 2005.02.08 -

  8 /bug

  9 /warning

  10 */

  11

  12 namespace sidle

  13 {

  14  using namespace System;

  15  using namespace System::Threading;

  16

  17  template

  18  ref class Singleton

  19  {

  20   public:

  21    static _T^ Instance()

  22    {

  23     if (_instance == nullptr)

  24     {

  25      _mut->WaitOne();

  26      try

  27      {

  28       if (_instance == nullptr)

  29       {

  30        _instance = gcnew _T();

  31       }

  32      }

  33      finally

  34      {

  35       _mut->ReleaseMutex();

  36      }

  37     }

  38     return _instance;

  39    }

  40   protected:

  41    Singleton(){}

  42    static _T^ _instance;

  43    static Mutex^ _mut = gcnew Mutex();

  44  }; // ref class Singleton

  45

  46 }; // namespace sidle

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 施秉县| 敦煌市| 吴忠市| 孟州市| 铜梁县| 台北市| 闽侯县| 昭通市| 清苑县| 丘北县| 承德县| 榕江县| 通州区| 奉节县| 富锦市| 江西省| 汉阴县| 苍梧县| 古交市| 会理县| 龙口市| 甘孜县| 察哈| 建昌县| 垦利县| 崇阳县| 琼中| 鄂尔多斯市| 连山| 揭西县| 孝感市| 蚌埠市| 东至县| 吐鲁番市| 中西区| 南涧| 阿克苏市| 阿克苏市| 华阴市| 钟山县| 太和县|