1.CSingleLock简介
总体而言:
1. CSingleLock主要是用于同步多个线程对一个数据类的同时访问。
2. CSingleLock有RAII的好处。
CSingleLock是对锁的一个封装,它的基本原理如下:(下面给出的是CSingleLock的构造函数和析构函数)
CSingleLock(Lock* pLock)
{
pLock->Lock();
}
~CSingleLock()
{
pLock->UnLock();
}
由上述基本原理可以看出,使用CSingleLock有两大好处:
1.防止编程笔误,只有Lock,没有UnLock。//因为是自动调用的析构函数,所以不必担心程序员使用时操作失误。
2.函数异常退出时,有可能流程走不到UnLock处,会导致资源锁死,而使用CSingleLock,则会在函数出栈时,自动调用CSingleLock析构函数,释放锁。
2.RAII的概念
RAII(Resource Acquisition Is Initialization)是一种利用对象生命周期来控制程序资源(如内存、文件句柄、网络连接、互斥量等等)的简单技术。 <