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.
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 à ...
Abonnement
tous les livres et vidéos ENI en illimité sans engagement
du livre imprimé ou du livre numérique