命名空间
变体
操作

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

来自 cppreference.cn
 
 
C++ 命名要求
基本
类型属性
全库范围




Container(容器)
容器元素
迭代器 (Iterator)
流 I/O
格式化器
随机数
并发
BasicLockable(基本可锁定)
(C++11)
范围 (Ranges)
多维视图
其他

 

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

目录

[编辑] 要求

对于类型 L 要满足 BasicLockable,类型 L 的对象 m 必须满足以下条件:

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

不抛出异常。

[编辑] 非共享锁

如果通过调用 locktry_locktry_lock_fortry_lock_until 成员函数获取了对象上的锁,则该锁被称为非共享锁

[编辑] 标准库

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

(C++11)
提供基本的互斥设施
(类) [编辑]
提供互斥设施,可以被同一线程递归锁定
(类) [编辑]
提供互斥设施,可以被递归锁定
被同一线程锁定并实现带超时的锁定
(类) [编辑]
提供共享互斥设施
(类) [编辑]
提供共享互斥设施,并实现带超时锁
(类) [编辑]
提供互斥设施,实现带超时的锁定
(类) [编辑]

[编辑] 参见