Namespaces
Variants

C++ named requirements: SharedLockable (since C++14)

From cppreference.net
C++ named requirements

SharedLockable 要求描述了为执行代理(即线程)提供共享阻塞语义的类型应具备的最小特性。

目录

要求

对于类型 L 要成为 SharedLockable ,类型 L 的对象 m 需满足以下条件:

表达式 前置条件 效果 返回值
m. lock_shared ( ) 阻塞直至当前执行代理(线程、进程、任务)能获得锁。若抛出异常,则不会获得锁。
m. try_lock_shared ( ) 尝试在不阻塞的情况下为当前执行代理(线程、进程、任务)获取锁。若抛出异常,则不会获得锁。 true 表示成功获得锁, false 表示未获得
m. unlock_shared ( ) 当前执行代理持有 m 的共享锁。 释放执行代理持有的共享锁。

不抛出异常。

共享锁

对象上的锁若通过调用 lock_shared try_lock_shared try_lock_shared_for try_lock_shared_until 成员函数获得,则称为 共享锁

标准库

以下标准库类型满足 SharedLockable 要求:

提供共享互斥机制
(类)
提供共享互斥机制并实现带超时的锁定功能
(类)

另请参阅