Spec-Zone.ru › Qt 5.12

Поддержка потоков в Qt

Qt предоставляет поддержку потоков в виде независимых от платформы классов потоков, безопасный для потоков способ отправки событий и соединений сигналов-слотов между потоками. Это упрощает разработку переносимых многопоточных приложений Qt и использование многопроцессорных машин. Многопоточное программирование также является полезной парадигмой для выполнения ресурсоёмких операций без блокировки пользовательского интерфейса приложения.

В более ранних версиях Qt была возможность скомпилировать библиотеку без поддержки потоков. Начиная с Qt 4.0, потоки всегда включены.

Темы:

Эти статьи предполагают, что читатель обладает базовыми знаниями о многопоточных приложениях.

  • Классы потоков
  • Технологии многопоточности в Qt
  • Синхронизация потоков
  • Взаимоисключаемость и безопасность потоков
  • Потоки и QObjects
  • Поддержка потоков в модулях Qt

Классы потоков

Эти классы относятся к многопоточным приложениям.

Конкурентный фильтр и фильтр-сведение

Конкурентное отображение и отображение-сведение

Конкурентный запуск

QAtomicInteger

Независимые от платформы атомарные операции над целыми числами

QAtomicPointer

Шаблонный класс, предоставляющий независимые от платформы атомарные операции над указателями

QFuture

Представляет результат асинхронного вычисления

QFutureSynchronizer

Класс-удобство, упрощающий синхронизацию QFuture

QFutureWatcher

Позволяет отслеживать QFuture с помощью сигналов и слотов

QMutex

Сериализация доступа между потоками

QMutexLocker

Класс-удобство, упрощающий блокировку и разблокировку мьютексов

QReadLocker

Класс-удобство, упрощающий блокировку и разблокировку блокировок чтения-записи для чтения

QReadWriteLock

Блокировка чтения-записи

QRunnable

Базовый класс для всех исполняемых объектов

QSemaphore

Общее семафор со счётчиком

QSemaphoreReleaser

Безопасный от исключений отложенный вызов QSemaphore::release()

QThread

Независимый от платформы способ управления потоками

QThreadPool

Управляет коллекцией QThreads

QThreadStorage

Хранилище данных на поток

QWaitCondition

Условная переменная для синхронизации потоков

QWriteLocker

Класс-удобство, упрощающий блокировку и разблокировку блокировок чтения-записи для записи

QtConcurrent

Высокоуровневые 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-5.12/threads.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API