Ein Thread-Pool ist eine feste Menge wiederverwendbarer Worker-Threads, die Aufgaben aus einer gemeinsamen Arbeitswarteschlange ziehen. Er vermeidet die Kosten, pro Aufgabe einen Thread zu erstellen, und deckelt die Zahl gleichzeitiger Threads.
Warum einen verwenden
Threads zu erstellen und zu zerstören ist teuer (Stack-Allokation, Einrichtung des OS-Schedulings), und unbegrenzte Thread-Erstellung erschöpft den Speicher und verursacht Kontextwechsel-Thrashing. Ein Pool amortisiert die Erstellungskosten und begrenzt die Nebenläufigkeit.
tasks → [ work queue ] → worker 1
worker 2 (N fixed workers pull & run)
worker 3
