Spec-Zone.ru › Qt 6.0

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

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

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

Темы:

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

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

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

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

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

Конкурентное отображение и отображение-редукция

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

Конкурентная задача

QAtomicInteger

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

QAtomicPointer

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

QFuture

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

QFutureSynchronizer

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

QFutureWatcher

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

QMutex

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

QMutexLocker

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

QPromise

Способ хранения результатов вычислений для доступа с помощью QFuture

QReadLocker

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

QReadWriteLock

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

QRecursiveMutex

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

QRunnable

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

QSemaphore

Общий семафор подсчёта

QSemaphoreReleaser

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

QThread

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

QThreadPool

Управляет набором QThreads

QThreadStorage

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

QWaitCondition

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

QWriteLocker

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

QtConcurrent

Высокоуровневые API, которые позволяют писать многопоточные программы без использования низкоуровневых потоковых примитивов

QtConcurrent::QTaskBuilder

Используется для настройки параметров задачи

Примечание: Классы потоков 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

Spec-Zone.ru

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