写一段代码测试一下博客的代码粘贴。:)
该类用来封装Windows的CRITICAL_SECTION,对于Singleton的类,只需声明一个CCriticalSectionAdapter的成员变量就可以了。
CriticalSectionAdapter.h
class CCriticalSectionAdapter
{
public:
CCriticalSectionAdapter();
~CCriticalSectionAdapter();
void lock();
void unlock();
private:
CCriticalSectionAdapter(CCriticalSectionAdapter& cs) {}
CCriticalSectionAdapter* operator= (CCriticalSectionAdapter& cs) {}
private:
CRITICAL_SECTION m_cs;
};CriticalSection.cpp
#include "CriticalSectionAdapter.h"
CCriticalSectionAdapter::CCriticalSectionAdapter()
{
InitializeCriticalSection(&m_cs);
}
CCriticalSectionAdapter::~CCriticalSectionAdapter()
{
DeleteCriticalSection(&m_cs);
}
void CCriticalSectionAdapter::lock()
{
EnterCriticalSection(&m_cs);
}
void CCriticalSectionAdapter::unlock()
{
LeaveCriticalSection(&m_cs);
}
本文介绍如何使用CCriticalSectionAdapter类来封装Windows的CRITICAL_SECTION,实现Singleton模式。通过声明一个CCriticalSectionAdapter成员变量,可以轻松管理互斥锁,确保线程安全。





