C++ 具名要求:可共享锁定 (SharedLockable)
来自cppreference.com
C++ 具名要求
| 基础 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 类型属性 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 库所属 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 容器 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 容器元素 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 迭代器 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 流 I/O | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 格式化 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 随机数 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 并发 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 范围 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 其他 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
可共享锁定 (SharedLockable) 要求描述对执行代理(即线程)提供共享阻塞语义的类型的最小特征。
要求
对于要为可共享锁定 (SharedLockable)
的类型 L ,必须对 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
成员函数取得,则称之为共享锁。