Pool de threads en PyQt Pool de threads

1. Introduction

Un pool de threads est un ensemble de threads distincts maintenus en attente de l’affectation à une tâche donnée. De fait, le modèle peut être vu ainsi :

  • On a un ensemble de threads en attente de travaux à réaliser.

  • Dès qu’une tâche est à réaliser, on dédie un thread en attente à cette tâche.

Ceci permet de mettre en place un multithreading sensiblement plus efficace que si on créait et interromptait des threads en fonction des besoins (méthode de la section précedente). Ici, les threads sont « prêts ». On économise, de ce fait, la latence induite par les démarrages et arrêts des threads.

Un pool de threads est donc une collection de threads tenue à disposition de la réalisation des tâches à venir.

En PyQt, on utilise la classe Qt nommée QThreadPool dont la documentation est accessible à l’adresse suivante : https://doc.qt.io/qt-5/qthreadpool.html

Voyons un rapide exemple d’utilisation de cette classe PyQt.

2. Petit exemple d’utilisation de QThreadPool Pool de threads:QThreadPool

Dans cet exemple, nous allons lancer un petit traitement grâce à un pool de threads préalablement créé. Pour définir le traitement, nous allons hériter de la classe PyQt QRunnable particulièrement adaptée pour définir une tâche à...

Pour consulter la suite, découvrez le livre suivant :
couv_EPPYQT5.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Le multithreading en PyQt
Suivant
Introduction