Sur cette page

Le multithreading dans Qt

Qt prend en charge les threads sous la forme de classes de threads indépendantes de la plate-forme, d'un moyen sûr d'afficher des événements et de connexions de fentes de signaux entre les threads. Il est ainsi facile de développer des applications Qt multithread portables et de tirer parti des machines multiprocesseurs. La programmation multithread est également un paradigme utile pour effectuer des opérations fastidieuses sans geler l'interface utilisateur d'une application.

Les versions antérieures de Qt offraient la possibilité de construire la bibliothèque sans prise en charge des threads. Depuis Qt 4.0, les threads sont toujours activés.

Sujets :

Ces articles supposent que le lecteur possède des connaissances de base sur les applications multithread.

Les classes de threading

Ces classes sont pertinentes pour les applications threadées.

Concurrent Filter and Filter-Reduce

Sélectionner des valeurs dans une séquence et les combiner, le tout en parallèle

Concurrent Map and Map-Reduce

Transformer des valeurs à partir d'une séquence et les combiner, le tout en parallèle

Concurrent Run

Une manière simple d'exécuter une tâche dans un thread séparé

Concurrent Task

Une manière configurable d'exécuter une tâche dans un thread séparé

QAtomicInteger

Opérations atomiques indépendantes de la plate-forme sur les nombres entiers

QAtomicPointer

Classe modèle qui fournit des opérations atomiques indépendantes de la plate-forme sur les pointeurs

QFuture

Représente le résultat d'un calcul asynchrone

QFutureSynchronizer

Classe de commodité qui simplifie la synchronisation QFuture

QFutureWatcher

Permet de contrôler une QFuture à l'aide de signaux et de slots

QMutex

Sérialisation des accès entre les threads

QMutexLocker

Classe de commodité qui simplifie le verrouillage et le déverrouillage des mutex

QPromise

Moyen de stocker les résultats d'un calcul pour qu'ils soient accessibles par une QFuture

QReadLocker

Classe de commodité simplifiant le verrouillage et le déverrouillage des verrous en lecture-écriture pour l'accès en lecture

QReadWriteLock

Verrouillage en lecture-écriture

QRecursiveMutex

Sérialisation des accès entre les threads

QRunnable

Classe de base pour tous les objets exécutables

QSemaphore

Sémaphore de comptage général

QSemaphoreReleaser

Report de l'appel à QSemaphore::release() à l'abri des exceptions

QThread

Méthode indépendante de la plate-forme pour gérer les threads

QThreadPool

Gestion d'une collection de QThreads

QThreadStorage

Stockage de données par thread

QWaitCondition

Variable de condition pour la synchronisation des threads

QWriteLocker

Classe de commodité qui simplifie le verrouillage et le déverrouillage des verrous lecture-écriture pour l'accès à l'écriture

QtConcurrent

API de haut niveau permettant d'écrire des programmes multithreads sans utiliser de primitives de threading de bas niveau

QtConcurrent::QTaskBuilder

Utilisée pour ajuster les paramètres des tâches

QtFuture::WhenAnyResult

QtFuture::WhenAnyResult est utilisé pour représenter le résultat de QtFuture::whenAny()

QAtomicInteger::qYieldCpu()

Note : Les classes de threading de Qt sont implémentées avec des API de threading natives ; par exemple, Win32 et pthreads. Elles peuvent donc être utilisées avec des threads de la même API native.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.