Een thread pool is een vaste set herbruikbare worker-threads die taken uit een gedeelde work queue trekken. Het vermijdt de kosten van het aanmaken van een thread per taak en begrenst het aantal gelijktijdige threads.
Waarom je er een gebruikt
Het aanmaken en vernietigen van threads is duur (stack-allocatie, opzetten van OS-scheduling), en onbegrensd threads aanmaken put het geheugen uit en veroorzaakt context-switch-thrashing. Een pool amortiseert de aanmaakkosten en begrenst de concurrency.
tasks → [ work queue ] → worker 1
worker 2 (N fixed workers pull & run)
worker 3
