std:: condition_variable_any
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
定义于头文件
<condition_variable>
|
||
|
class
condition_variable_any
;
|
(C++11 起) | |
condition_variable_any
类是
std::condition_variable
的泛化版本。虽然
std::condition_variable
仅能用于
std::
unique_lock
<
std::
mutex
>
,但
condition_variable_any
可以操作任何满足
BasicLockable
要求的锁类型。
请参阅 std::condition_variable 了解条件变量的语义说明。
类
std::condition_variable_any
属于
标准布局类型
。它不满足
可复制构造
、
可移动构造
、
可复制赋值
或
可移动赋值
的要求。
如果锁是 std:: unique_lock < std:: mutex > , std::condition_variable 可能提供更好的性能。
目录 |
成员函数
|
构造对象
(公开成员函数) |
|
|
析构对象
(公开成员函数) |
|
|
operator=
[deleted]
|
不可复制赋值
(公开成员函数) |
通知 |
|
|
通知一个等待线程
(公开成员函数) |
|
|
通知所有等待线程
(公开成员函数) |
|
等待 |
|
|
阻塞当前线程直至条件变量被唤醒
(公开成员函数) |
|
|
阻塞当前线程直至条件变量被唤醒或超过指定时限
(公开成员函数) |
|
|
阻塞当前线程直至条件变量被唤醒或抵达指定时间点
(公开成员函数) |
|
注释
std::condition_variable_any
可与
std::shared_lock
配合使用,以便在共享所有权模式下等待
std::shared_mutex
。
std::condition_variable_any
的一个潜在用途是配合自定义的
Lockable
类型实现可中断等待:自定义的锁定操作会按预期锁定关联的互斥锁,同时完成必要设置,以便在接收到中断信号时通知此条件变量。
[1]
参见
|
(C++11)
|
提供与
std::unique_lock
关联的条件变量
(类) |
外部链接
|