跳到主要内容

C++ 命名要求: BasicLockable (C++11 起)

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

要求

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

表达式前置条件效果
m.lock()阻塞,直到当前执行代理(线程、进程、任务)可以获得锁。如果抛出异常,则不获取锁。
m.unlock()当前执行代理持有 m 上的非共享锁。释放执行代理持有的非共享锁。不抛出异常。

非共享锁

如果通过调用 lock、try_lock、try_lock_for 或 try_lock_until 成员函数获得对象上的锁,则称该锁为非共享锁。

C++ 命名要求: BasicLockable (C++11 起)

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

要求

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

表达式前置条件效果
m.lock()阻塞,直到当前执行代理(线程、进程、任务)可以获得锁。如果抛出异常,则不获取锁。
m.unlock()当前执行代理持有 m 上的非共享锁。释放执行代理持有的非共享锁。不抛出异常。

非共享锁

如果通过调用 lock、try_lock、try_lock_for 或 try_lock_until 成员函数获得对象上的锁,则称该锁为非共享锁。