美文网首页
C++ lock_guard

C++ lock_guard

作者: e196efe3d7df | 来源:发表于2020-07-18 09:32 被阅读0次

前言

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);
         //函数内容
     }
}

相关文章

  • 多线程互斥锁

    c++之多线程中“锁”的基本用法unique_lock比lock_guard多的功能函数

  • C++ lock_guard

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

  • C++ lock_guard

    可能被多个线程修改的数据,我们一般用互斥量(mutex)来保护。mutex在同一时间,只能被一个线程拿到(专业术语...

  • std::unique_lock与std::lock_guard

    std::lock_guard std::lock_guard是RAII模板类的简单实现,功能简单。 std::u...

  • C++

    std::unique_lock and std::lock_guard区别: https://blog.csdn...

  • 生产者消费者中条件变量的使用

    使用的层次说明 多线程同步互斥锁mutex,lock_guard和unique_lock用法原子操作...

  • c++中lock_guard以及unique_lock的区别

    这两种锁都可以对std::mutex进行封装,实现RAII的效果。绝大多数情况下这两种锁是可以互相替代的,区别是u...

  • C++并发编程 - 互斥锁(lock_guard和unique_

    C++并发编程 - 互斥锁 在多线程的编程中,共享数据的修改限制是必不可少的环节。期望的是:当一个线程访问共享数据...

  • std::lock_guard 引起的思考

    std::lock_guard 引起的思考 版权声明:本文为 cheng-zhi 原创文章,可以随意转载,但必须在...

  • 多线程学习(五)

    unique_lock 前面有一篇讲了使用lock_guard替代lock()和unlock(),可以避免忘记un...

网友评论

      本文标题:C++ lock_guard

      本文链接:https://www.haomeiwen.com/subject/oxrxkktx.html