【linux软件基础知识】-线程安全实例

std::unique_lock

unique_lock 类是通用互斥锁所有权包装器,允许延迟锁定、时间受限的锁定尝试、递归锁定、锁所有权转移以及与条件变量一起使用。

类 unique_lock 是可移动的,但不可复制——它满足 MoveConstructible 和 MoveAssignable 的要求,但不满足 CopyConstructible 或 CopyAssignable 的要求。

unique_lock 类满足 BasicLockable 要求。 如果Mutex满足Lockable要求,unique_lock也满足Lockable要求(例如:可以在std::lock中使用); 如果 Mutex 满足 TimedLockable 要求,则 unique_lock 也满足 TimedLockable 要求。
BasicLockable 描述了为执行代理(即线程)提供独占阻塞语义的类型的最小特征。

std::defer_lock

std::defer_lock、std::try_to_lock 和 std::adopt_lock 分别是空结构标记类型 std::defer_lock_t、std::try_to_lock_t 和 std::adopt_lock_t 的实例。

它们用于指定 std::lock_guard、std::unique_lock 和 std::shared_lock 的锁定策略。

std::lock

使用死锁避免算法锁定给定的 Lockable 对象 lock1, lock2, …, lockn 以避免死锁。

这些对象通过一系列未指定的lock、try_lock 和unlock 调用来锁定。 如果对lock或unlock的调用导致异常,则在重新

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

糖果Autosar

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值