std::shared_timed_mutex::lock_shared
来自 cppreference.cn
< cpp | thread | shared timed mutex
void lock_shared(); |
(自 C++14 起) | |
获取互斥量的共享所有权。如果另一个线程以独占所有权方式持有互斥量,则对 lock_shared
的调用将阻塞执行,直到可以获取共享所有权。
如果线程已在任何模式(独占或共享)下拥有 mutex
,则调用 lock_shared
的行为是未定义的。
如果超过实现定义的最大共享所有者数量已在共享模式下锁定互斥量,则 lock_shared
会阻塞执行,直到共享所有者的数量减少。保证最大所有者数量至少为 10000。
在同一互斥量上的先前 unlock() 操作与此操作同步(如 std::memory_order 中定义的那样)。
内容 |
[编辑] 参数
(无)
[编辑] 返回值
(无)
[编辑] 异常
当发生错误时,包括来自底层操作系统阻止 lock
满足其规范的错误时,抛出 std::system_error。在抛出任何异常的情况下,互斥量不会被锁定。
[编辑] 注解
lock_shared()
通常不直接调用:std::shared_lock 用于管理共享锁定。
[编辑] 示例
本节不完整 原因:没有示例 |
[编辑] 参见
锁定互斥量,如果互斥量不可用则阻塞 (公开成员函数) | |
尝试锁定互斥量以进行共享所有权,如果互斥量不可用则返回 (公开成员函数) | |
解锁互斥量(共享所有权) (公开成员函数) |