En thread pool er et fast sæt af genbrugelige worker-tråde, der trækker opgaver fra en delt work queue. Den undgår omkostningen ved at oprette en tråd per opgave og sætter et loft over antallet af samtidige tråde.
Hvorfor bruge en
At oprette og nedlægge tråde er dyrt (stack-allokering, opsætning af OS-scheduling), og ubegrænset trådoprettelse udtømmer hukommelsen og forårsager context-switch-tromling. En pool amortiserer oprettelsesomkostningen og afgrænser concurrency.
tasks → [ work queue ] → worker 1
worker 2 (N fixed workers pull & run)
worker 3
