同步锁
来源:互联网 发布:电脑打不开软件没反应 编辑:程序博客网 时间:2024/06/05 19:34
#pragma onceCMM_NS_BEGINclass SyncObject{public:SyncObject(void);SyncObject(DWORD dwSpinCount);~SyncObject(void);void lock();void unlock();private:CRITICAL_SECTION m_SyncObject;private:CMM_DISALLOW_EVIL_CONSTRUCTORS(SyncObject);};inline SyncObject::SyncObject(DWORD dwSpinCount){if (!InitializeCriticalSectionAndSpinCount(&m_SyncObject,dwSpinCount)){HLOG_COMMON(HLOG_LEVEL_ERROR,"InitializeCriticalSectionAndSpinCount failed ...");}}inline SyncObject::SyncObject(void){InitializeCriticalSection(&m_SyncObject);}inline SyncObject::~SyncObject(void){DeleteCriticalSection(&m_SyncObject);}inline void SyncObject::lock(){EnterCriticalSection(&m_SyncObject);}inline void SyncObject::unlock(){LeaveCriticalSection(&m_SyncObject);}class CGuard{public:explicit CGuard(SyncObject* pscLock);~CGuard(void);private:SyncObject* m_pcsLock;private:CMM_DISALLOW_EVIL_CONSTRUCTORS(CGuard);};inline CGuard::~CGuard(void){try{if (NULL != m_pcsLock){m_pcsLock->unlock();}}catch (...){}}inline CGuard::CGuard(SyncObject* pscLock): m_pcsLock(pscLock){if (NULL != m_pcsLock){m_pcsLock->lock();}}CMM_NS_END//////////////////////////////////////////////////////////////////////////使用:先定义SyncObject m_soMapStatusStatistics;在使用CGuard guard(&m_soMapStatusStatistics);
阅读全文
0 0
- 同步锁
- 同步锁
- 线程同步 、同步锁、信号量
- 线程同步---同步锁(Lock)
- 锁,同步代码块,同步方法 区别
- 线程,线程同步,对象锁,同步方法
- Java线程同步之同步锁
- 同步代码块,同步代码方法,锁
- 同步代码块、同步方法、锁总结
- java线程同步 synchronized同步锁
- java线程同步 Lock同步锁
- 线程,同步与锁
- 主流同步锁模式
- 同步与锁
- synchronized同步锁详解
- 线程同步与锁
- linux同步锁总结
- 多线程,同步,锁
- 三级导航
- 学习日记-ajax异步转同步
- Beginning—Learn to use Markdown
- bind() to 0.0.0.0:8123 failed
- 二叉树 c 实现
- 同步锁
- A/B HDU1576
- 有用过PHP SPL的吗,不知道这主要用来干嘛
- Java 基础
- spring boot security的简单学习demo
- Hadoop 文件查看工具
- Gartner全球IAAS市场报告:阿里云进入全球前三
- 我是如何利用Hadoop做大规模日志压缩的
- 深拷贝和浅拷贝