QWaitCondition — условные ожидания в Qt
Оглавление
- Процессы и потоки в Qt
- QProcess – процессы в Qt
- QThread – потоки в Qt
- Приоритеты потоков в Qt
- Обмен сообщениями между потоками
- Сигнально-слотовые соединения
- Связь между потоками с помощью высылки событий
- Синхронизация
- QMutex — мьютексы в Qt
- QWaitCondition — условные ожидания в Qt
- Взаимные блокировки
- QSemaphore — семафоры в Qt
Библиотека Qt предоставляет класс QWaitCondition, обеспечивающий возможность координации потоков. Если поток намеревается дождаться разблокировки ресурса, то он вызывает метод QWaitCondition::wait() и, тем самым, входит в режим ожидания. Выводится он из этого режима в том случае, если поток, который заблокировал ресурс, вызовет метод QWaitCondition::wakeOne() или QWaitCondition::wakeAll(). Разница этих двух методов в том, что первый выводит из состояния ожидания только один поток, а второй — все сразу. Также для потока можно установить время, в течение которого он может ожидать разблокировки данных. Для этого нужно передать в метод wait() целочисленное значение, обозначающее временной интервал в миллисекундах.
Читать далее: Взаимные блокировки