Sur cette page

Le multithreading dans Qt

Qt offre une prise en charge des threads sous la forme de classes de multithreading indépendantes de la plate-forme, d'un mécanisme de publication d'événements sécurisé pour les threads et de connexions signal-slot entre les threads. Cela facilite le développement d'applications Qt multithread portables et permet de tirer parti des machines multiprocesseurs. La programmation multithread constitue également un paradigme utile pour effectuer des opérations chronophages sans bloquer l'interface utilisateur d'une application.

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

Thèmes :

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

Les classes de gestion des threads

Ces classes concernent les applications multithread.

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 d'une séquence et les combiner, le tout en parallèle

Concurrent Run

Une méthode simple pour exécuter une tâche dans un thread distinct

Concurrent Task

Une méthode configurable pour exécuter une tâche dans un thread distinct

QAtomicInteger

Opérations atomiques sur des entiers, indépendantes de la plate-forme

QAtomicPointer

Classe de modèle fournissant des opérations atomiques indépendantes de la plateforme sur des pointeurs

QFuture

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

QFutureSynchronizer

Classe de commodité simplifiant la synchronisation avec QFuture

QFutureWatcher

Permet de surveiller un 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 de calcul auxquels QFuture doit accéder

QReadLocker

Classe utilitaire 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 de l'accès entre les threads

QRunnable

La classe de base pour tous les objets exécutables

QSemaphore

Sémaphore de comptage général

QSemaphoreReleaser

Report sans risque d’exception d’un appel à QSemaphore::release()

QThread

Méthode indépendante de la plateforme pour gérer les threads

QThreadPool

Gère une collection de QThreads

QThreadStorage

Stockage de données par thread

QWaitCondition

Variable de condition pour la synchronisation des threads

QWriteLocker

Classe utilitaire simplifiant la mise en place et la levée des verrous de lecture-écriture pour l'accès en écriture

QtConcurrent

API de haut niveau permettant d’écrire des programmes multithreads sans recourir à des primitives de threading de bas niveau

QtConcurrent::QTaskBuilder

Utilisé 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()

Remarque : les classes de gestion des threadsde Qt sont implémentées à l'aide d'API de gestion des threads 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.