前言
lock_guard是c++11新推出的自动释放锁,基本原理就是局部对象在超出处作用域后自动销毁,并调用其析构函数。
细述
声明一个lock_guard对象,把mutex传入,在其构造函数中进行加锁,在其析构函数中进行解锁。
使用
- 包含mutex头文件
- 创建锁 std::mutex mutex
- 在需要被加锁的作用域内,将mutex传入创建的std::lock_guard对象中
#include <mutex> /*std::mutex、 std::lock_guard*/
std::mutex mutex;
void func()
{
//lock_guard 互斥锁 作用域内不可拷贝构造
{
std::lock_guard<std::mutex> lg(m_mutex);
//函数内容
}
}
网友评论