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