实现一个单例模式的类,要求线程安全
来源:互联网 发布:有道云笔记数据恢复 编辑:程序博客网 时间:2024/05/29 18:27
class Lock{private: CCriticalSection m_cs;public: Lock(CCriticalSection cs) : m_cs(cs) { m_cs.Lock(); } ~Lock() { m_cs.Unlock(); }}; class Singleton{private: Singleton(); Singleton(const Singleton &); Singleton& operator = (const Singleton &); public: static Singleton *Instantialize(); static Singleton *pInstance; static CCriticalSection cs;}; Singleton* Singleton::pInstance = 0; Singleton* Singleton::Instantialize(){ if(pInstance == NULL) { //double check Lock lock(cs); //用lock实现线程安全,用资源管理类,实现异常安全 //使用资源管理类,在抛出异常的时候,资源管理类对象会被析构,析构总是发生的无论是因为异常抛出还是语句块结束。 if(pInstance == NULL) { pInstance = new Singleton(); } } return pInstance;} /*class Singleton{private: static Singleton* instance; Singleton(); Singleton(const Singleton &s); Singleton& operator=(const Singleton &s);public: static Singleton* GetInstance() { static Singleton instance; return &instance; }};*/
阅读全文
0 0
- 实现一个单例模式的类,要求线程安全
- 怎么实现一个线程安全的单例模式呢?
- 实现一个线程安全的单例模式
- 一个单例工厂类,要求线程安全?
- 实现单例模式的线程安全的类
- 写一个线程安全的单例模式
- 设计一个线程安全的单例(Singleton)模式
- 写一个线程安全的单例模式
- 一个线程安全的单例模式示例
- 写一个线程安全的单例模式
- 线程安全的单例模式的实现
- 线程安全的单例模式 的各种实现 总结
- 线程安全的单例模式的实现
- 单例模式的四种线程安全的实现
- 一种线程安全的单例模式实现
- 单例模式实现 线程安全的队列 处理
- C++实现线程安全的单例模式
- 这里实现定界加锁线程安全的单例模式
- QT设置环境变量QWS_DISPLAY
- linux内核模块编译
- Spark 自带demo学习日志
- [!] /usr/bin/git clone https://github.com/CocoaPods/Specs.git master --progress Cloning into 'master
- LeetCode
- 实现一个单例模式的类,要求线程安全
- 653. Two Sum IV
- PAT_A 1048. Find Coins (25)
- Oracle高级优化——侵入存储提纲(用PRIVATE OUTLINE)
- Java中的Null是什么?
- 《MySQL入门很简单》学习笔记(7)之第7章索引(关键词:数据库/MySQL/索引/设计索引/创建索引/删除索引)
- Hadoop-Invert-Index
- CodeForces 339 A.Helpful Maths(水~)
- android studio 解决依赖库冲突问题