话不多少,先上代码:
template<class _Mutex>
class LockGuard {
public:
explicit LockGuard(_Mutex& _Mtx)
: _MyMutex(_Mtx) {
// construct and lock
_MyMutex.lock();
}
~LockGuard() {
// unlock
_MyMutex.unlock();
}
private:
_Mutex& _MyMutex;
LockGuard(const LockGuard&);
LockGuard& operator=(const LockGuard&) ;
};
其实原理很简单,就是利用的局部变量在函数体中执行完后自动释放的特性。作用域范围:在函数体中定义的位置~函数体结束
本文介绍了一个简单的LockGuard模板类实现,该类利用局部变量的作用域特性,在构造时锁定互斥锁并在析构时自动解锁,确保了资源使用的安全性。
7068

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



