C++ lock_guard

2020-07-18  本文已影响0人  e196efe3d7df

前言

lock_guard是c++11新推出的自动释放锁,基本原理就是局部对象在超出处作用域后自动销毁,并调用其析构函数。

细述

声明一个lock_guard对象,把mutex传入,在其构造函数中进行加锁,在其析构函数中进行解锁。

使用

  1. 包含mutex头文件
  2. 创建锁 std::mutex mutex
  3. 在需要被加锁的作用域内,将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);
         //函数内容
     }
}
上一篇 下一篇

猜你喜欢

热点阅读