IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Viadeo Twitter Facebook Share on Google+   
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

Le support des threads avec Qt

Qt fournit un support de threads dans le formulaire des classes de threading indépendantes de la plateforme, une manière thread-safe(1) de poster des évènements, et des connexions signaux/slots à travers les threads. Cela rend simple le développement d'applications Qt multi-thread et de tirer profit des machines multiprocesseurs. La programmation multi-thread est aussi un paradigme très utile pour exécuter des opérations consommatrices en temps de calcul sans pour autant bloquer l'interface utilisateur d'une application.

Introduction

Les précédentes versions de Qt offraient l'option de compiler la bibliothèque sans le support des threads. Depuis Qt 4.0, les threads sont toujours activés.

Sujets :

Lectures recommandées

Ce document est destiné à un public possédant la connaissance et l'expérience des applications multi-thread. Si vous débutez dans le domaine du « threading », reportez-vous à la liste des lectures recommandées :

Les classes de threading

Ces classes sont appropriées aux applications threadées.

Lancement asynchrone L'en-tête <QtConcurrentRun> fournit une manière de lancer une fonction dans un thread séparé.
Concurrence et réduction de filtre L'en-tête <QtConcurrentFilter> fournit des filtres simultanés et réductibles.
Concurrence et réduction de map L'en-tête <QtConcurrentMap> fournit des maps simultanés et réductibles.
QAtomicInt Opérations atomiques indépendantes de la plateforme sur des entiers.
QAtomicPointer Classe template qui fournit 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 convenance qui simplifie la synchronisation de QFuture.
QFutureWatcher Permet l'écoute d'un QFuture par l'utilisation des signaux et des slots.
QMutex Sérialisation d'accès entre les threads.
QMutexLocker Classe utilitaire qui simplifie le verrouillage et le déverrouillage des mutexs.
QReadLocker Classe utilitaire qui simplifie le verrouillage et le déverrouillage des verrous de lecture et d'écriture pour l'accès en lecture.
QReadWriteLock Verrouillage de lecture et d'écriture.
QRunnable La classe de base pour tous les objets exécutables.
QSemaphore Sémaphore de comptage général.
QThread Threads indépendants de la plateforme.
QThreadPool Gère une collection de QThread.
QThreadStorage Stockage de données par thread.
QWaitCondition Variable conditionnelle pour la synchronisation de threads.
QWriteLocker Classe utilitaire qui simplifie le verrouillage et le déverrouillage des verrous de lecture et d'écriture pour l'accès en écriture.
QtConcurrent API de haut niveau qui permet l'écriture de programmes multi-thread sans avoir à utiliser de threads de bas niveau.

Note : Les classes Qt de threading sont implémentées avec des API de threading natives : par exemple, Win32 et pthreads. Par conséquent, elles peuvent être utilisées avec d'autres threads de la même API.

Remerciements

Merci à Louis du Verdier pour la traduction et à Thibaut Cuvelier, Jonathan Courtois et Philippe Beaucart pour leur relecture !


(1)Une fonction ou un objet est dit thread-safe quand il peut être utilisé simultanément par plusieurs threads, en considérant uniquement son implémentation.

Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. Qt 4.7
Copyright © 2024 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP !