Un thread pool est un ensemble fixe de threads worker réutilisables qui tirent des tâches d'une file de travail partagée. Il évite le coût de la création d'un thread par tâche et plafonne le nombre de threads concurrents.
Pourquoi en utiliser un
Créer et détruire des threads est coûteux (allocation de pile, mise en place de l'ordonnancement OS), et une création de threads sans limite épuise la mémoire et provoque un emballement des changements de contexte (thrashing). Un pool amortit le coût de création et borne la concurrence.
tâches → [ file de travail ] → worker 1
worker 2 (N workers fixes tirent et exécutent)
worker 3
