在线文档教程
C++
线程支持 | Thread support

std::condition_variable_any

性病:情况[医]变量[医]任何

Defined in header
class condition_variable_any;(since 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::condition_variable可以提供更好的性能。

成员函数

(constructor)constructs the object (public member function)
(destructor)destructs the object (public member function)
operator= deletednot copy-assignable (public member function)

通知

通知[医]通知一个等待线程%28公共成员函数%29

通知[医]所有通知所有等待线程%28公共成员函数%29

等待

等待阻止当前线程,直到唤醒条件变量%28公共成员函数%29

等待[医]对于阻塞当前线程,直到条件变量被唤醒为止,或者在指定的超时持续时间%28公共成员函数%29之后。

等待[医]直到阻塞当前线程,直到条件变量被唤醒,或者直到达到指定的时间点为止,才达到%28公共成员函数%29。

注记

std::condition_variable_any可与std::shared_lock为了等待std::shared_mutex在共享所有权模式下。

可能的用途std::condition_variable_any有习俗Lockable类型是为了提供方便的可中断等待:自定义锁操作既可以按预期锁定相关的互斥对象,也可以执行必要的设置,以便在收到中断信号时通知该条件变量。[1]

参考文献

  • A.Williams%282012%29,“C++在行动中的并发”9.2.4插入等待STD::条件[医]变量[医]任何

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cppreference.com/w/cpp/线程/条件[医]变量[医]任何