En thread pool är en fast uppsättning återanvändbara arbetartrådar som hämtar uppgifter från en delad arbetskö. Den undviker kostnaden för att skapa en tråd per uppgift och sätter ett tak för antalet samtidiga trådar.
Varför använda en
Att skapa och förstöra trådar är dyrt (stackallokering, uppsättning av OS-schemaläggning), och obegränsat trådskapande tömmer minnet och orsakar kontextväxlingströskning. En pool amorterar skapandekostnaden och begränsar samtidigheten.
tasks → [ work queue ] → worker 1
worker 2 (N fixed workers pull & run)
worker 3
