C++ lock_guard 自动释放锁

概述

根据对象的析构函数自动调用的原理,c++11推出了std::lock_guard自动释放锁,其原理是:声明一个局部的lock_guard对象,在其构造函数中进行加锁,在其析构函数中进行解锁。最终的结果就是:在定义该局部对象的时候加锁(调用构造函数),出了该对象作用域的时候解锁(调用析构函数)。

使用方法

  1. 首先需要包含mutex头文件
  2. 然后创建一个锁 std::mutex mutex
  3. 在需要被加锁的作用域内 将mutex传入到创建的std::lock_guard局部对象中
#include <mutex>	/*std::mutex、 std::lock_guard*/

std::mutex mutex;  
void func() 
{
	std::lock_guard<std::mutex> lock(mutex);
    //函数内容
}
发布了87 篇原创文章 · 获赞 28 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/MakerCloud/article/details/96846921