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 à...