当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:56:00  来源:本站整理

C++/CLI中实现singleton情势[VC/C++编程]

赞助商链接



  本文“C++/CLI中实现singleton情势[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
 双重检测锁(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<typename _T>
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

  以上是“C++/CLI中实现singleton情势[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • win8 Could not load type System.ServiceModel.Activation.HttpModule 错误办理筹划
  • 利用Javascript实现网页水印(非图片水印)
  • 在Windows7中将U盘用BitLocker加密的操作步骤
  • rs.open和conn.execute辨别
  • 不用注册机破解Photoshop CS5 每次都需求重新输入注册码
  • CSS网页筹划25个实用小本领
  • CSS3教程:利用@font-face实现本性化字体
  • 办理Windows提醒0xc000009内存错误的办法
  • PHP的chm手册打不开怎么办
  • 关于SQL中CTE(公用表表达式)(Common Table Expression)的总结
  • mysql #1062 –Duplicate entry ''1'' for key ''PRIMARY''
  • SQL Server中利用Linkserver衔接Oracle的办法
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .