---页首---

std::scoped_lock\std::shared_mutex\std::unique_lock

std::scoped_lock(C++17提供 RAII锁管理)

  1. 构造时自动加锁
  2. 离开作用域时自动解锁
  3. 即使中间发生异常,也会自动释放锁
  4. 默认执行独占锁定
  5. 可以同时安全锁定多个互斥量

注:简单作用域锁

std::unique_lock

  1. 延迟加锁
  2. 手动 unlock()
  3. 再次 lock()
  4. 转移锁的所有权
  5. 配合条件变量使用
  6. 支持锁的尝试操作

注:可控制性更强的灵活锁

std::shared_mutex

  1. 大量线程同时读取
  2. 少量线程修改

不同场景

  1. 读取时使用共享锁:std::shared_lockstd::shared_mutex lock(mutex)
  2. 修改时使用独占锁: std::unique_lockstd::shared_mutex lock(mutex)
posted @ 2026-09-08 16:18  20190311  阅读(4)  评论(0)    收藏  举报
---页脚---