Поддержка потоков в Qt
Qt предоставляет поддержку потоков в виде независимых от платформы классов потоков, безопасный для потоков способ публикации событий и соединений сигнал-слот между потоками. Это упрощает разработку портативных многопоточных приложений Qt и использование многопроцессорных машин. Многопоточная разработка также является полезной парадигмой для выполнения трудоёмких операций без зависания пользовательского интерфейса приложения.
Более ранние версии Qt предлагали возможность построения библиотеки без поддержки потоков. Начиная с Qt 4.0, потоки всегда включены.
Темы:
В этих статьях предполагается, что читатель имеет базовые знания о многопоточных приложениях.
- Классы потоков
- Технологии многопоточности в Qt
- Синхронизация потоков
- Взаимопроникновение и безопасность потоков
- Потоки и QObjects
- Поддержка потоков в модулях Qt
Классы потоков
Эти классы относятся к многопоточным приложениям.
Независимые от платформы атомарные операции над целыми числами |
|
Шаблонный класс, предоставляющий независимые от платформы атомарные операции над указателями |
|
Представляет результат асинхронного вычисления |
|
Удобный класс, упрощающий синхронизацию QFuture |
|
Позволяет отслеживать QFuture с помощью сигналов и слотов |
|
Сериализация доступа между потоками |
|
Удобный класс, упрощающий блокировку и разблокировку мьютексов |
|
Способ хранения результатов вычислений для доступа с помощью QFuture |
|
Удобный класс, упрощающий блокировку и разблокировку блокировок чтения/записи для доступа для чтения |
|
Блокировка чтения/записи |
|
Сериализация доступа между потоками |
|
Базовый класс для всех выполняемых объектов |
|
Общий семафор подсчёта |
|
Безопасный от исключений отложенный вызов QSemaphore::release() |
|
Независимый от платформы способ управления потоками |
|
Управляет набором QThreads |
|
Хранилище данных на поток |
|
Условная переменная для синхронизации потоков |
|
Удобный класс, упрощающий блокировку и разблокировку блокировок чтения/записи для доступа для записи |
|
Высокоуровневые API, которые позволяют писать многопоточные программы без использования низкоуровневых потоковых примитивов |
|
Используется для настройки параметров задачи |
Примечание: Классы потоков Qt реализованы с использованием собственных API потоков; например, Win32 и pthreads. Поэтому они могут использоваться с потоками одного и того же собственного API.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/threads.html