基于临界区锁类的定义(.h):
1 class CMyLock
{
public:
CMyLock();
~CMyLock();
public:
void Lock();
void Unlock();
private:
CRITICAL_SECTION m_cs;
};
2 实现方法(.cpp)
CMyLock::CMyLock()
{
InitializeCriticalSection(&m_cs);
}
CMyLock::~CMyLock()
{
DeleteCriticalSection(&m_cs);
}
void CMyLock::Lock()
{
EnterCriticalSection(&m_cs);
}
void CMyLock::Unlock()
{
LeaveCriticalSection(&m_cs);
}
3 自动锁
class CAutoLock{
public:
CAutoLock(CMyLock* pMyLock);
~CAutoLock();
public:
CMyLock* m_pMyLock;
};
CAutoLock::CAutoLock(CMyLock* pMyLock)
{
m_pMyLock = pMyLock;
if (m_pMyLock)
m_pMyLock->Lock();
}
CAutoLock::~CAutoLock()
{
if (m_pMyLock)
m_pMyLock->Unlock();
}
本文详细介绍了基于临界区的锁类CMyLock的定义与实现,包括初始化、销毁、上锁和解锁方法。同时,还阐述了自动锁CAutoLock的设计,它在构造和析构时自动调用CMyLock的Lock和Unlock方法,确保线程安全。
5万+

被折叠的 条评论
为什么被折叠?



