std::condition_variable_any
Материал из cppreference.com
![]() |
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google. Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Щёлкните здесь, чтобы увидеть английскую версию этой страницы. (Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке.) |
Определено в заголовочном файле <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
.Оригинал:
The
condition_variable_any
class is a generalization of std::condition_variable. Whereas std::condition_variable works only on std::unique_lock<std::mutex>, condition_variable_any
can operate on any user-defined lock that meets the BasicLockable
requirements.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
condition_variable_any
предоставляет аналогичные функциональные возможности std::condition_variable. Это примитив синхронизации, которые могут быть использованы, чтобы блокировать некоторые числа потоков до:Оригинал:
condition_variable_any
provides similar functionality to std::condition_variable. It is a synchronization primitive that can be used to block some number of threads until:Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
- получения уведомления от другого потокаОригинал:a notification is received from another threadТекст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. - тайм-аута, илиОригинал:a timeout expires, orТекст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. - ложные пробуждения происходитОригинал:a ложные пробуждения occursТекст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Любой поток, который намерен ждать на
std::condition_variable_any
должен получить блокировку в первую очередь. Ожидание операции атомарно освободить блокировку и приостановить выполнение потока. Когда переменная условия уведомления, поток пробуждается, и блокировка приобрело.Оригинал:
Any thread that intends to wait on
std::condition_variable_any
has to acquire a lock first. The wait operations atomically release the lock and suspend the execution of the thread. When the condition variable is notified, the thread is awakened, and the lock is reacquired.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Класс
std::condition_variable_any
является стандартным макетом класса. Это не копия, конструктивных, перемещение конструктивных, скопируйте переуступке, или перемещение назначаемые.Оригинал:
The class
std::condition_variable_any
is a standard-layout class. It is not copy-constructible, move-constructible, copy-assignable, or move-assignable.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Если блокировка std::unique_lock, std::condition_variable может обеспечить более высокую производительность.
Оригинал:
If the lock is std::unique_lock, std::condition_variable may provide better performance.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
[править] Функции-члены
создаёт объект (public функция-элемент) | |
разрушает объект (public функция-элемент) | |
operator= [удалено] |
без копирования присваиванием (public функция-элемент) |
Оригинал: Notification Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. | |
уведомляет один ожидающий поток (public функция-элемент) | |
уведомляет все ожидающие потоки (public функция-элемент) | |
Оригинал: Waiting Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. | |
блокирует текущий поток до тех пор, пока условная переменная не будет активирована (public функция-элемент) | |
блокирует текущий поток до тех пор, пока условная переменная не будет активирована или по истечении указанного времени ожидания (public функция-элемент) | |
блокирует текущий поток до тех пор, пока условная переменная не будет активирована или пока не будет достигнут указанный момент времени (public функция-элемент) |