16.4.2 类condition_variable_any
2025年09月26日
16.4.2 类
condition_
variable_
any
类condition_variable_any的声明形式为:
由以上内容可知,该类包含3个构造函数,但最实用的还是第一种形式(无参数的);还包含两个通知函数以及6个等待函数(两个wait_for()、两个wait_until()和两个wait())。
条件变量condition_variable_any与condition_variable类似,只不过condition_variable_any的wait()函数可以接受任何可锁类型(lockable)的参数,而condition_variable只能接受u- nique_lock<std::mutex>类型的互斥量,除此以外,和std::condition_variable几乎完全一样。
该类的构造函数不能采取复制或移动的方式初始化。
下面以示例的形式阐释条件变量类condition_variable_any的用法。例16-15主要用于说明notify_one()函数和notify_all()的使用方法。例16-16主要用于说明各个等待函数(wait、wait_for和wait_until)的使用用法。
例16-15
例16-15的执行效果如图16-15所示。
图16-15 例16-15的执行效果
例16-16
例16-16的执行效果如图16-16所示。
图16-16 例16-16的执行效果