std::shared_mutex::lock_shared
STD::共享[医]互斥::锁[医]共享
void lock_shared( | | (since C++17) |
---|
获取互斥体的共享所有权。如果另一个线程持有互斥对象的独占所有权,则调用lock_shared
将阻止执行,直到获得共享所有权为止。
如果lock_shared
由已经拥有mutex
在任何模式%28独占或共享%29中,行为都是未定义的。
如果已将互斥锁锁在共享模式中的共享所有者的数量超过实现定义的最大数量,lock_shared
块执行,直到减少共享所有者的数量。最大业主人数保证至少为10000。
优先unlock()
对同一个互斥体的操作同步性
中定义的28名ASstd::memory_order
%29这次行动。
参数
%280%29
返回值
%280%29
例外
抛出std::system_error
当发生错误时,包括来自底层操作系统的错误,这些错误将防止lock
不符合它的规格。在抛出任何异常的情况下,互斥锁不会被锁定。
注记
lock_shared()
通常不直接调用:std::shared_lock
用于管理共享锁定。
例
另见
lock | locks the mutex, blocks if the mutex is not available (public member function) |
---|---|
try_lock_shared | tries to lock the mutex for shared ownership, returns if the mutex is not available (public member function) |
unlock_shared | unlocks the mutex (shared ownership) (public member function) |
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。