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 для описания семантики condition variables.
Класс
std::condition_variable_any
является
StandardLayoutType
. Он не является
CopyConstructible
,
MoveConstructible
,
CopyAssignable
или
MoveAssignable
.
Если блокировка является std:: unique_lock < std:: mutex > , std::condition_variable может обеспечить лучшую производительность.
Содержание |
Функции-члены
|
конструирует объект
(public member function) |
|
|
уничтожает объект
(public member function) |
|
|
operator=
[deleted]
|
не копируемый
(public member function) |
Уведомление |
|
|
уведомляет один ожидающий поток
(public member function) |
|
|
уведомляет все ожидающие потоки
(public member function) |
|
Ожидание |
|
|
блокирует текущий поток до пробуждения переменной условия
(public member function) |
|
|
блокирует текущий поток до пробуждения переменной условия или после указанной длительности таймаута
(public member function) |
|
|
блокирует текущий поток до пробуждения переменной условия или до достижения указанной точки времени
(public member function) |
|
Примечания
std::condition_variable_any
может использоваться с
std::shared_lock
для ожидания на
std::shared_mutex
в режиме разделяемого владения.
Возможное использование
std::condition_variable_any
с пользовательскими
Lockable
типами — обеспечение удобных прерываемых ожиданий: пользовательская операция блокировки будет как блокировать связанный мьютекс, как и ожидается, так и выполнять необходимую настройку для уведомления этого условного переменной при получении сигнала прерывания.
[1]
Смотрите также
|
(C++11)
|
предоставляет переменную условия, ассоциированную с
std::unique_lock
(класс) |
Внешние ссылки
|