学习笔记(07):c++11并发与多线程-unique_lock详解

立即学习:https://edu.csdn.net/course/play/9377/196525?utm_source=blogtoedu

1.unique_lock取代lock_guard

unique_lock是个类模板。工作中一般lock_guard足够了(推荐使用)。

unique_lock使用方式和lock_guard创建方式一样。

unique_lock<mutex> submutex(mymutex);

2.unique_lock的第二个参数

2.1 std::adopt_lock

这个标记的效果,假设调用线程一方已经lock成功。通知lock_guard不需要在构造函数中lock。

灵活性。

2.2std::try_to_lock

unique_lock<mutex> submutex(mymutex, std::try_to_lock);

if (submutex.owns_lock())

...

else

...

2.3std::defer_lock

初始化一个未加锁的mutex。

3.unique_lock的成员函数

3.1lock()

3.2unlock()

3.3try_lock()

3.4release()

release 返回一个mutex指针

接管过来需要看好后面自己负责的操作。

4.unique_lock所有权的传递。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值