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 中所定义)。
目录 |
[编辑] 参数
(无)
[编辑] 返回值
(无)
[编辑] 异常
发生错误时抛出 std::system_error,包括底层操作系统阻止 lock
满足其规范的错误。如果抛出任何异常,互斥量将不会被锁定。
[编辑] 注意
lock_shared()
通常不直接调用:std::shared_lock 用于管理共享锁定。
[编辑] 示例
本节不完整 原因:无示例 |
[编辑] 参阅
锁定互斥体,如果互斥体不可用则阻塞 (public member function) | |
尝试以共享所有权锁定互斥体,如果互斥体不可用则返回 (public member function) | |
解锁互斥体(共享所有权) (public member function) |