首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

std::shared_mutex::lock_shared

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)

代码语言:txt
复制
 ? cppreference.com

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

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com