C++线程安全的单例模式实现
2015-01-10 16:31
609 查看
class Singleton { public: static Singleton* getInstance() { if (instance == NULL) { //mutex.lock(); if (instance == NULL) { instance = new Singleton(); } //mutex.unlock(); } return instance; } private: static Singleton* instance; //Mutex mutex; }; Singleton* Singleton::instance = NULL;
Mutex取绝于平台。。。
注意:两次instance == null的判断不可少。才能保证多线程安全,这种方法也叫Double-Check Locking(双重锁定)
相关文章推荐
- 单例模式——C++实现线程安全的单例
- 单例模式——C++实现线程安全的单例
- 用C++实现单例模式3——如何在不使用锁和C++11的情况下,用C++实现线程安全的Singleton
- 单例模式——C++实现线程安全的单例
- 用C++实现单例模式2——线程安全
- 单例模式——C++实现线程安全的单例
- 单例模式——c++实现线程安全的单例类
- C++实现线程安全的单例模式
- 单例模式——C++实现线程安全的单例
- 单例模式——C++实现线程安全的单例 .
- C++实现线程安全的单例模式
- 单例模式——C++实现线程安全的单例
- 单例模式——C++实现线程安全的单例
- 从零开始学C++之模板(四):用模板实现单例模式(线程安全)、模板方式实现动态创建对象
- C++实现线程安全的单例模式
- 单例模式——C++实现线程安全的单例
- C++实现线程安全的单例模式
- 从零开始学C++之模板(四):用模板实现单例模式(线程安全)、模板方式实现动态创建对象
- 常见设计模式的解析和实现(C++)之十六-Strategy模式
- 常见设计模式的解析和实现(C++)之十八-Iterator模式