C++/CLI中实现 singleton模式_C/C++语言_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

C++/CLI中实现 singleton模式

作者:黑客防线网安C/C++教程基地 来源:黑客防线网安C/C++教程基地 浏览次数:0

本篇关键词:模式实现 class
黑客防线网安网讯:    双重检测锁(Double-Checked Locking)实现的Singleton模式在多线程应用中有相当的价值。在ACE的实现中就大量使用ACE_Singleton模板类将普通类转换成具有Singleton行为的类。这种方式很...
    双重检测锁(Double-Checked Locking)实现的Singleton模式在多线程应用中有相当的价值在ACE的实现中就大量使用ACE_Singleton模板类将普通类转换成具有Singleton行为的类这种方式很好地消除了一些重复代码臭味而且优化后的性能较标准互斥版本提高15倍。最近在用C++/CLI做一些工作,Singleton不可避免地需要用到,于是我又制造了一次车轮。
    1 #pragma once
    2
    3 /** class sidle::Singleton
    4 rief Singleton (Double-Checked Locking)
    5 author 吴尔平
    6 version 1.0
    7 date 2005.02.08 -
    8 ug
    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
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-15417-1.html
网站维护教程更新时间:2012-04-04 22:54:29  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer