Spec-Zone.ru › Qt 6.1

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

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

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

Темы:

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

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

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

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

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

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

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

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

QAtomicInteger

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

QAtomicPointer

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

QFuture

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

QFutureSynchronizer

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

QFutureWatcher

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

QMutex

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

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

Spec-Zone.ru

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