Spec-Zone.ru › Qt 5.15

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

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

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

Темы:

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

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

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

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

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

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

Конкурентное выполнение

QAtomicInteger

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

QAtomicPointer

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

QFuture

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

QFutureSynchronizer

Удобный класс, упрощающий синхронизацию QFuture

QFutureWatcher

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

QMutex

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

QMutexLocker

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

QReadLocker

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

QReadWriteLock

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

QRecursiveMutex

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

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.15/threads.html

Spec-Zone.ru

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