Qt : pourquoi et quand utiliser les threads ?

Pourquoi créer des threads

Ceci étant dit, ce qui nous intéresse dans cet article est aussi de savoir quand il est opportun de créer des threads.

Je vais dire une évidence mais tant pis : les threads servent à paralléliser l’exécution de sous-processus, dans l’objectif d’améliorer les performances du processus (algorithme de parcours de graphes par exemple) et/ou d’exploiter pleinement les capacités de la machine.

De là, je tire plusieurs corollaires :

  1. si l’architecture ne possède qu’un processeur avec un unique coeur, la parallélisation est inutile. Ce point peut-être contrebalancé par le fait que l’application pourra tourner sur des architectures différentes. Il faudra alors adapter le comportement du programme au nombre des coeurs disponibles sur la machine.
  2. l’introduction de threads multiple entraîne une difficulté de conception accrue. Il faut que ce coût soit justifié par un gain de performances (calculer rapidement la valeur de Pi avec une précision importante par exemple).
  3. la gestion des threads est simple avec Qt, mais elle entraine l’utilisation de nombreux signaux et une architecture plus complexe, cf le point 2.
  4. la synchronisation des threads devient indispensable et elle entraine les difficultés mentionnées ci-dessus.
  5. plus il y a de threads et le calcul intensif, c’est-à-dire l’utilisation du processus intensive, plus l’interface graphique risque d’en souffrir… les autres applications aussi.
  6. l’utilisation intensive des ressources de la machine, qui devraient être partagées avec d’autres applications, suppose d’être prise en compte dès la conception. Pouvez-vous vous le permettre ? En d ‘autres termes, l’application que vous concevez sera-t-elle la seule à fonctionner sur la machine en milieu industriel par exemple ou bien est-elle destinée au grand public ?

Chacun de ces points est important et peut entraîner des désagréments chez l’utilisateur final, voire des plantages ou des arrêts brutaux d’application si l’utilisateur en comprend pas ce qui se passe.

Bref, vous l’aurez compris, si vous devez utiliser plus d’un thread cela doit être une décision liée à la conception de l’application et non une solution désespérée face à un problème a priori insoluble.

Partagez cet article !

Abonnez-vous à notre newsletter !

Si vous souhaitez être notifié lorsqu'un nouvel article est publié, abonnez-vous à notre newsletter et vous recevrez un email dès qu'un article sera publié.

Pages : 1 2 3 4 5

Articles similaires

Qt : Traiter une liste de... Pour qu’une interface graphique reste fluide aux yeux de l’utilisateur, le thread qui la gère ne doit jamais être interrompu plus d’une poignée de millisecondes. Or le
Utiliser la technique du ... Le lazy-loading, ou chargement paresseux en français, est une réponse simple à la question simple “pourquoi charger plus de données que nous ne pouvons en afficher ?”.
Adopter les flux tirés d... Nous abordons un des points essentiels de l’architecture réseau et applicative efficace et économe : les flux tirés. Partagez cet article ! Abonnez-vous à notre newsletter !
Livre Maîtrisez Qt 5 ... La seconde édition du livre de Tristan Israël, Maîtrisez Qt 5 – Développement d’applications professionnelles, est parue. Vous pouvez le découvrir sur le site des éditions ENI.
Qt : pourquoi et quand ut... Pourquoi créer des threads Ceci étant dit, ce qui nous intéresse dans cet article est aussi de savoir quand il est opportun de créer des threads. Je
Qt : l’influence du... Résultats Voici la liste des résultats obtenus sur différentes plateformes d’exécution. Je rappelle que seuls les résultats les plus significatifs ont été conservés, si vous souhaitez obtenir
Qt : comment implanter un... L’application Voici à présent le fichier main.cpp [crayon-5d83bab7da61b712735463/] Après avoir déclaré une instance de QCoreApplication, nous démarrons le contrôleur et exécutons le traitement threadé. Au bout de
Qt : distribuer ses appli... La distribution d’une application est une étape importante de la vie d’une application, elle nécessite d’être pensée très tôt dans la conception. Cette série d’articles présente les
Apprendre à développer ... Une de mes activités est la formation professionnelle à la conception et à la programmation d’applications avec Qt. J’envisage aujourd’hui de créer un MOOC payant pour partager

Laisser une réponse

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *