C++ named requirements: Lockable (since C++11)
From cppreference.net
C++
C++ named requirements
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lockable 要求扩展了 BasicLockable 要求,包含了尝试性锁定功能。
目录 |
要求
对于类型
L
成为
可锁定
类型,除满足上述条件外还需满足以下条件:
| 表达式 | 效果 | 返回值 |
|---|---|---|
| m. try_lock ( ) | 尝试获取当前执行代理(线程、进程、任务)的锁而不阻塞。如果抛出异常,则不会获得锁。 | true 表示成功获取锁, false 表示获取失败 |
注释
try_lock
成员函数在成功时获取
m
上的非共享锁。
标准库
以下标准库类型满足 Lockable 要求:
|
(C++11)
|
提供基础互斥设施
(类) |
|
(C++11)
|
提供可被同一线程递归锁定的互斥设施
(类) |
|
(C++11)
|
提供可被同一线程递归锁定
并实现超时锁定功能的互斥设施 (类) |
|
(C++17)
|
提供共享互斥设施
(类) |
|
(C++14)
|
提供共享互斥设施并实现超时锁定功能
(类) |
|
(C++11)
|
提供实现超时锁定功能的互斥设施
(类) |