C++实现单例模式
2014-09-29 11:35
246 查看
不考虑多线程
考虑多线程
#include<stdio.h> #include<iostream> class Singleton { private: Singleton(){} static Singleton* instance; public: static Singleton* GetInstance() { if(instance == NULL) { instance = new Singleton(); } return instance; } }; Singleton* Singleton::instance = NULL; int main() { Singleton* mySingle1 = Singleton::GetInstance(); Singleton* mySingle2 = Singleton::GetInstance(); if(mySingle1 == mySingle2) std::cout<<"mySingle1=mySingle2"<<std::endl; if(mySingle1 == NULL) std::cout<<"mySingle=NULL"<<std::endl; return 0; }
考虑多线程
class Singleton { private: Singleton(){} static Singleton* instance; static pthread_mutex_t mutex; public: static Singleton* GetInstance() { if(instance == NULL) { pthread_mutex_lock(&mutex); if(instance == NULL) { instance = new Singleton(); } pthread_mutex_unlock(&mutex); } return instance; } }; pthread_mutex_t Singleton::mutex=PTHREAD_MUTEX_INITIALIZER; Singleton* Singleton::instance = NULL;
相关文章推荐
- Party - Organization - Employee - Party模式的C++实现
- Singleton模式的C++实现研究(转载)
- 常见设计模式的解析和实现(C++)之十九-Memento模式
- 常见设计模式的解析和实现(C++)之十六-Strategy模式
- Singleton模式的C++实现研究(转贴)
- C++设计模式:Singleton的模板实现之一
- 常见设计模式的解析和实现(C++)之十三-FlyWeight模式
- 分析模式-计量的C++实现——回复ch0877
- 常见设计模式的解析和实现(C++)之二十一-完结篇
- 常见设计模式的解析和实现(C++)之十四-Command模式
- state设计模式学习, 一个C++的实现
- C++完美实现Singleton模式
- C++实现网络服务器命令模式(设计及模板实现)
- 常见设计模式的解析和实现(C++)之二十-Visitor模式
- Singleton模式的C++实现研究
- 单件模式的C++模板实现
- GoF 23种设模式解析附C++实现源码(k_eckel转自微软高校博客K_eckel's mindview)
- 在C++中使用事件回调机制(通过Observer模式、函数指针等实现)
- 分析模式-计量的C++实现——完美版本
- Singleton模式的C++实现研究(示例代码)