在线文档教程
C++
线程支持 | Thread support

std::shared_timed_mutex::lock_shared

STD::共享[医]定时[医]互斥::锁[医]共享

void lock_shared((since C++14)

获取互斥体的共享所有权。如果另一个线程持有互斥对象的独占所有权,则调用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用于管理共享锁定。

另见

locklocks the mutex, blocks if the mutex is not available (public member function)
try_lock_sharedtries to lock the mutex for shared ownership, returns if the mutex is not available (public member function)
unlock_sharedunlocks the mutex (shared ownership) (public member function)

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cppreference.com/w/cpp/线程/Shared[医]定时[医]互斥锁[医]共享