Spec-Zone.ru › Qt 5.13

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

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

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

Темы:

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

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

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

Эти классы актуальны для многопоточных приложений.

QAtomicInteger

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

QAtomicPointer

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

QFuture

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

QFutureSynchronizer

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

QFutureWatcher

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

QMutex

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

QMutexLocker

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

QReadLocker

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

QReadWriteLock

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

QWriteLocker

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

QRunnable

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

QSemaphore

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

QSemaphoreReleaser

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

QThread

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

QThreadPool

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

QThreadStorage

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

QWaitCondition

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

QtConcurrent

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

Concurrent Filter и Filter-Reduce

Concurrent Map и Map-Reduce

Concurrent Run

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

Spec-Zone.ru

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