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
- Technologies multithread dans Qt
- Synchronisation des threads
- Réentrance et sécurité des threads
- Les threads et les QObjects
- Prise en charge des threads dans les modules Qt
Les classes de gestion des threads
Ces classes concernent les applications multithread.
Sélectionner des valeurs dans une séquence et les combiner, le tout en parallèle | |
Transformer des valeurs d'une séquence et les combiner, le tout en parallèle | |
Une méthode simple pour exécuter une tâche dans un thread distinct | |
Une méthode configurable pour exécuter une tâche dans un thread distinct | |
Opérations atomiques sur des entiers, indépendantes de la plate-forme | |
Classe de modèle fournissant des opérations atomiques indépendantes de la plateforme sur des pointeurs | |
Représente le résultat d’un calcul asynchrone | |
Classe de commodité simplifiant la synchronisation avec QFuture | |
Permet de surveiller un QFuture à l'aide de signaux et de slots | |
Sérialisation des accès entre les threads | |
Classe de commodité qui simplifie le verrouillage et le déverrouillage des mutex | |
Moyen de stocker les résultats de calcul auxquels QFuture doit accéder | |
Classe utilitaire simplifiant le verrouillage et le déverrouillage des verrous en lecture-écriture pour l'accès en lecture | |
Verrouillage en lecture-écriture | |
Sérialisation de l'accès entre les threads | |
La classe de base pour tous les objets exécutables | |
Sémaphore de comptage général | |
Report sans risque d’exception d’un appel à QSemaphore::release() | |
Méthode indépendante de la plateforme pour gérer les threads | |
Gère une collection de QThreads | |
Stockage de données par thread | |
Variable de condition pour la synchronisation des threads | |
Classe utilitaire simplifiant la mise en place et la levée des verrous de lecture-écriture pour l'accès en écriture | |
API de haut niveau permettant d’écrire des programmes multithreads sans recourir à des primitives de threading de bas niveau | |
Utilisé pour ajuster les paramètres des tâches | |
QtFuture::WhenAnyResult est utilisé pour représenter le résultat de QtFuture::whenAny() | |
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.