thread pool என்பது ஒரு shared work queue-இலிருந்து tasks-ஐ இழுக்கும் மீண்டும் பயன்படுத்தக்கூடிய worker threads-இன் ஒரு நிலையான தொகுப்பு ஆகும். இது ஒவ்வொரு task-க்கும் ஒரு thread-ஐ உருவாக்கும் செலவைத் தவிர்த்து concurrent threads-இன் எண்ணிக்கையை வரம்பிடுகிறது.
ஏன் ஒன்றைப் பயன்படுத்துவது
threads-ஐ உருவாக்குவதும் அழிப்பதும் விலையுயர்ந்தது (stack allocation, OS scheduling setup), மேலும் வரம்பற்ற thread உருவாக்கம் memory-ஐ தீர்த்துவிட்டு context-switch thrashing-ஐ ஏற்படுத்துகிறது. ஒரு pool உருவாக்கச் செலவை amortize செய்து concurrency-ஐ வரம்பிடுகிறது.
tasks → [ work queue ] → worker 1
worker 2 (N fixed workers pull & run)
worker 3
