C++ std::lock_guard 自动加锁释放锁 原理
Posted 软件工程小施同学
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ std::lock_guard 自动加锁释放锁 原理相关的知识,希望对你有一定的参考价值。
概述
根据对象的析构函数自动调用的原理,c++11推出了std::lock_guard自动释放锁,其原理是:声明一个局部的lock_guard对象,在其构造函数中进行加锁,在其析构函数中进行解锁。最终的结果就是:在定义该局部对象的时候加锁(调用构造函数),出了该对象作用域的时候解锁(调用析构函数)。
使用方法
首先需要包含mutex头文件
然后创建一个锁 std::mutex mutex
在需要被加锁的作用域内 将mutex传入到创建的std::lock_guard局部对象中
#include <mutex> /*std::mutex、 std::lock_guard*/
std::mutex mutex;
void func()
{
std::lock_guard<std::mutex> lock(mutex);
//函数内容
}
————————————————
版权声明:本文为CSDN博主「Markus.Zhao」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/MakerCloud/article/details/96846921
以上是关于C++ std::lock_guard 自动加锁释放锁 原理的主要内容,如果未能解决你的问题,请参考以下文章
基于std::mutex std::lock_guard std::condition_variable 和std::async实现的简单同步队列
linux C++互斥锁std::lock_guard(轻锁)std::unique_lock(重锁)区别
linux C++互斥锁std::lock_guard(轻锁)std::unique_lock(重锁)区别