
C++/CLI中实现singleton模式
发布时间:2006-02-13 10:54:15 来源:博客园 网友评论 0 条
双重检测锁(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 |
全站资源
- 微软官方入门教程19:轻松掌握Vista系统的快
- 微软2008大冲击,预借Vista SP1力促Vista市
- 在收件箱中获得 Windows Vista 的最新更新
- 微软官方Vista入门教程全集19篇(Vista学院
- Windows Vista 的成功将势不可挡
- 快快抛弃Vista,拥抱XP SP3!你觉得呢?
- 浅谈Vista系统关闭虚拟内存与使用内存盘加速
- 嘿嘿,按下键盘上面的三个键,马上让你的Vi
- Windows Vista的盗版率只有Windows XP的一半
- 3DMark和PCMark Vantage新版将只支持Vista系
阅读排行
- Borland 发布C++ Builder 2006 RAD 环境
- C/C++程序员应聘常见面试题深入剖析
- Visual C++常用数据类型转换详解
- C++中的 static 关键字
- 利用VC++实现局域网实时视频传输
- 浅谈C/C++内存泄漏及其检测工具
- 英国投票否决C++/CLI 微软强攻ISO标准受挫
- VC++下用MSComm控件实现串口通讯
- 伪随机数生成及在VC++中的实现
- VC++编程实现对波形数据的频谱分析
最新技术文档
- C++中用赋值形式op=取代单独形式op
- C++启蒙之用C++制作程序
- C++启蒙之C++中的类
- 解析C++/CLI之头文件、内联函数与数组
- C++启蒙之控制结构
- C++启蒙之注释符号
- 了解C++异常处理的系统开支
- C++语言学习之从结构到类
- C++中理解“传递参数”和异常之间的差异
- C++中禁止异常信息传递到析构函数外
专题教程
- 大话G游 专题:手机病毒揭密
- ARP攻击防范与解决方案 路由故障处理手册
- Picasa中文版_Picasa教程 专题:清除流氓软件
- Firefox专题 seo搜索引擎优化专区
- 重装Windows必知的事情 装机之必备软件大行动
病毒专杀栏
