C++11多线程学习总结

//保护共享数据,操作时,某个线程 需要用代码把共享数据锁住、操作数据、解锁,其它想操作共享数据的线程必须等待解锁,然后才能锁定、操作,解锁。

一,互斥量的基本概念

互斥量是一个类对象。理解成一把锁,多个线程尝试用lock成员函数来加锁这把锁头,只有一个线程能锁定成功,

对于没有锁定成功的线程,流程卡在lock这里不断的尝试加锁这把锁头。

//互斥量使用要小心,保护数据不多也不少,保护的少了,每达到保护效果,保护的内容多了,影响效率。

二,互斥量的使用

2.1 lock与unlock

步骤:先lock,再操作共享数据,最后,unlock

lock与unlock要成对出现,每调用一次lock,必须要调用一次unlock。

为了防止大家忘记unlock,引入了一个std::lock_guard的类模板

2.2 std::lock_guard类模板

需要一个std::mutex来构造一个lock_guard对象,构造lock_guard对象时,mutex锁定,析构lockguard对象时,mutex解锁。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值