Spec-Zone.ru › Qt 5.14

Поддержка потоков в 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 реализованы с помощью собственных примитивов потоков; например, Win32 и pthreads. Поэтому они могут использоваться с потоками одного и того же собственного API.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/threads.html

Spec-Zone.ru

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