C++ 具名要求:可基本锁定 (BasicLockable) (C++11 起)
来自cppreference.com
可基本锁定 (BasicLockable) 要求描述提供为执行代理(即线程)提供排他性阻塞语义的类型的最小特征。
目录 |
[编辑] 要求
对于要成为可基本锁定 (BasicLockable) 的类型 L
,L
类型的对象 m
必须满足下列条件:
表达式 | 前条件 | 效果 |
---|---|---|
m.lock() | 阻塞到能为当前执行代理(线程、进程、任务)取得锁为止。若抛异常,则不取得锁。 | |
m.unlock() | 当前执行代理在 m 上保有非共享锁。
|
释放执行代理曾保有的非共享锁。
不抛异常。 |
[编辑] 非共享锁
若对象上的一个锁由调用 lock
、try_lock
、try_lock_for
或 try_lock_until
成员函数取得,则称之为非共享锁。
[编辑] 标准库
下列标准库类型满足可基本锁定 (BasicLockable) :
(C++11) |
提供基本互斥设施 (类) |
(C++11) |
提供能被同一线程递归锁定的互斥设施 (类) |
(C++11) |
提供能被同一线程递归锁定的互斥设施,并实现有时限锁定 (类) |
(C++17) |
提供共享互斥设施 (类) |
(C++14) |
提供共享互斥设施并实现有时限锁定 (类) |
(C++11) |
提供互斥设施,实现有时限锁定 (类) |