跳到主要内容

C++ 命名要求: TimedLockable (自 C++14 起)

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

要求

对于类型 L 要成为 SharedLockable,对象 m(类型为 L)必须满足以下条件:

表达式前置条件效果返回值
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 成员函数获得对象上的锁,则称之为 共享锁

C++ 命名要求: TimedLockable (自 C++14 起)

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

要求

对于类型 L 要成为 SharedLockable,对象 m(类型为 L)必须满足以下条件:

表达式前置条件效果返回值
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 成员函数获得对象上的锁,则称之为 共享锁