C++ lock_guard 自动释放锁

2023-11-17

概述

根据对象的析构函数自动调用的原理,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);
    //函数内容
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ lock_guard 自动释放锁 的相关文章

随机推荐

  • 02-JavaWeb之Servlet及相关知识点

    一 Servlet 简介 Java Servlet 是运行在 Web 服务器 tomcat 或应用服务器上的程序 它可以接收来自 Web 浏览器或其他 HTTP 客户端的请求 并进行结果的响应 使用 Servlet 可以收集来自网页表单的用
  • 1064 Complete Binary Search Tree (30 分)

    题目 题目链接 题解 数据结构 二叉排序树的中序遍历是单调递增的 完全二叉树具有很好的顺序存储的性质 利用中序遍历和递归 先构造左子树 再对根节点进行赋值 再构造右子树 我是fw 代码 include
  • 【异常】 DevOps工具链SonarQube提示严重的错误,内容为Save and re-use this “Random“,需要使用SecureRandom替换Random

    一 报错内容 二 报错说明 2 1 Random和SecureRandom的区别 Random生成伪随机数 这意味着这些数字并不是真正的随机数 而是由算法生成的 如果攻击者知道生成这些数字的算法 那么Random生成的数字就可以被预测 因此
  • scrapy中使用正确的xpath出现空列表问题

    今天在使用scrapy框架爬取网页时 使用正确的xpath来爬取时 爬取的缺失空列表 代码如下 coding utf 8 import scrapy class HaodfSpider scrapy Spider name haodf st
  • Elasticsearch基本查询

    目录 基本语法 查询所有 match all 匹配查询 match 多字段查询 multi match 精确匹配 term 多词条精确匹配 terms 结果过滤 直接指定字段 指定includes和excludes 布尔组合查询 bool
  • Minio入门教学

    Minio 文件存储系统 以往的项目 用的比较多的OSS服务是腾讯云和阿里云的存储服务 最近的几个项目 普遍要使用Minio 所以我在开发服务器和测试服务器上都装上了minio 一 首先minio的安装 采用docker安装 因为docke
  • 预处理丨去趋势(Matlab和C++)

    预处理丨去趋势 Matlab和C 预处理丨去趋势 Matlab和C 介绍 原理 MATLAB 实现 C 实现 本科没学过信号处理 对采集的数据需要做预处理 如去趋势 本文介绍一下去趋势的作用和方法 介绍 1 去趋势波动分析 detrende
  • anaconda+pyCharm安装教程

    1 前往官网下载anaconda 官网下载地址 https www anaconda com products individual 无脑next就完事了 记得修改安装路径 D盘或其他盘都行 这两个框都勾选上 省下配置环境的烦恼 2 接下来
  • MD5算法 —— C语言实现(字符串的加密)

    网上找到的实现md5函数代码 包括一个头文件md5 h和一个源文件md5 c 用下面的测试代码test c测试通过 各文件依次如下 h文件 md5 h ifndef MD5 H define MD5 H typedef struct uns
  • 格式文档时使用替换删除空白行

    格式文档时使用替换删除空白行 手动的话 可以使用替换 选上正则 匹配栏 n s 2 n s 匹配大于等于2个换行的 替换栏 1 然后一键替换即可
  • kotlin 一用就爱上

    前言 前晚谷歌大会正式宣布 kotlin正式成为官方开发语言 圈里顿时闹得沸沸扬扬 之前也有去捣鼓一下 就是每次下载插件的时候会失败 然后就没捣鼓 但是谷歌昨天正式宣布了所以得去捣鼓了 刚刚开始的时候下载的时候也会弹出个失败窗口 直接复制图
  • jenkins部署微服务项目

    新手上路 对着视频做了一个谷粒的在线教育项目 测试跑通之后 想要自己试着部署到自己的云服务器上 闲着也是闲着不是 言归正传 简介 在微服务架构中 随着服务越来越多 服务的打包部署就会成为一个相当麻烦的事情 比如说我的edu online项目
  • 函数写不好后面的人都会遭殃,如何写一个更好的Python函数?

    Python虽然好用 但用好真的很难 尤其是函数部分 只要写不好 后面的一连串人都会遭殃 看又看不懂 测试起来也麻烦 维护又维护不动 真是让人头疼 那怎么写好一个Python函数呢 Writing Idiomatic Python 一书的作
  • 2020年深圳杯C题

    C题 无线可充电传感器网络充电路线规划 摘要 物联网的快速发展带动了无线传感器网络WSN在生活中的广泛运用 无线传感器网络中包括若干传感器以及一个数据中心 这些传感器的电池均需要移动充电器提供能量来维持正常的工作 移动充电器的能量一方面用于
  • 物联网(AIOT)--下一个技术风口

    物联网 AIOT 下一个技术风口 我们现在身边越来越多的硬件设备正在被嵌入芯片 软件 从而实现更多的功能和更紧密的联系 物联网其实是借助互联网的力量 实现万物互联 如果说互联网是联系你我 让信息的交换更加自如 物联网是让人体自身 身边的各种
  • AIGC:人人可用的新时代,ChatGPT背后的技术将深刻改变工作模式,重塑商业形态...

    省时查报告 专业 及时 全面的行研报告库 省时查方案 专业 及时 全面的营销策划方案库 免费下载 2023年8月份全网热门报告合集 ChatGPT提词示例 让你的ChatGPT聪明100倍 超百页干货资料 AI应用的难点 痛点与未来 202
  • 【VULNHUB靶机】Corrosion: 1

    在家隔离 好久没玩靶机了 现在来整一个 靶机信息 下载地址 https www vulnhub com series corrosion 491 下载之后直接导入到vmeware即可 打靶过程 信息收集 nmap masscan 发现有22
  • 2022年高教社杯全国大学生数学建模竞赛-【比赛规则篇】比赛规则及比赛指导

    目录 前言 比赛规则 1 开题说明 2 竞赛结束前 1 参赛作品的组成 2 参赛作品的提交
  • 解决Eclipse找不到或无法加载主类问题

    1 projiet clean 2 再次运行程序 就可以成功运行
  • C++ lock_guard 自动释放锁

    概述 根据对象的析构函数自动调用的原理 c 11推出了std lock guard自动释放锁 其原理是 声明一个局部的lock guard对象 在其构造函数中进行加锁 在其析构函数中进行解锁 最终的结果就是 在定义该局部对象的时候加锁 调用