Namespaces
Variants

C++ named requirements: BasicLockable (since C++11)

From cppreference.net
C++ named requirements

BasicLockable 需求描述了为执行代理(即线程)提供独占阻塞语义的类型应具备的最小特性。

目录

要求

对于类型 L 成为 可基本锁定 类型,类型 L 的对象 m 需满足以下条件:

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

不抛出异常。

非共享锁

当一个对象上的锁是通过调用 lock try_lock try_lock_for try_lock_until 成员函数获取时,该锁被称为 非共享锁

标准库

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

(C++11)
提供基础互斥设施
(class)
提供可被同一线程递归锁定的互斥设施
(class)
提供可被同一线程递归锁定
并实现超时锁定机制的互斥设施
(class)
提供共享互斥设施
(class)
提供共享互斥设施并实现超时锁定机制
(class)
提供实现超时锁定机制的互斥设施
(class)

参见