C++ std::lock_guard

问题

最近在项目总结过程中,发现项目大量使用了 std::lock_guard 这个模板类,仔细分析后发现这个类牵扯到了很多重要的计算机基础,例如:多线程,互斥,锁等等,这里便记录下来,也算是一次简单的总结。

std::lock_guard 简介

这个类是一个互斥量的包装类,用来提供自动为互斥量上锁和解锁的功能,简化了多线程编程,用法如下:

#include <mutex>
 
std::mutex kMutex;
 
void function() {
   
  // 构造时自动加锁
  std::lock_guard<std::mutex> (kMutex);
   
  // 离开局部作用域,析构函数自动完成解锁功能
}

用法非常简单,只需在保证线程安全的函数开始处加上一行代码即可,其他的都在这个类的构造函数和析构函数中自动完成。

实现 my_lock_guard

这是自己实现的一个 lock_guard,就是在构造和

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值