您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> C十十 >> 辅导 >> 正文    
  C++/CLI中实现singleton模式 【注册男护士专用博客】          

C++/CLI中实现singleton模式

www.nanhushi.com     佚名   不详 

双重检测锁(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

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目

      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)                            【进男护士社区逛逛】
    姓 名:
    * 游客填写  ·注册用户 ·忘记密码
    主 页:

    评 分:
    1分 2分 3分 4分 5分
    评论内容:
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。