C++ 命名要求: SharedLockable (自 C++14 起)
来自 cppreference.cn
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 要求
(C++17) |
提供共享互斥设施 (类) |
(C++14) |
提供共享互斥设施,并实现带超时锁 (类) |