Pula wątków to stały zestaw wielokrotnie używanych wątków roboczych, które pobierają zadania ze współdzielonej kolejki pracy. Unika kosztu tworzenia wątku na każde zadanie i ogranicza liczbę współbieżnych wątków.
Po co jej używać
Tworzenie i niszczenie wątków jest kosztowne (alokacja stosu, konfiguracja harmonogramowania w systemie operacyjnym), a nieograniczone tworzenie wątków wyczerpuje pamięć i powoduje przeciążenie przełączaniem kontekstu. Pula amortyzuje koszt tworzenia i ogranicza współbieżność.
tasks → [ work queue ] → worker 1
worker 2 (N fixed workers pull & run)
worker 3
