thread pool అనేది ఒక shared work queue నుండి tasks ను తీసుకునే reusable worker threads యొక్క fixed set. ఇది ప్రతి task కు ఒక thread ను create చేసే ఖర్చును నివారిస్తుంది మరియు concurrent threads సంఖ్యను పరిమితం చేస్తుంది.
ఒకదాన్ని ఎందుకు ఉపయోగించాలి
threads ను create మరియు destroy చేయడం ఖరీదైనది (stack allocation, OS scheduling setup), మరియు అపరిమిత thread creation memory ను ఖాళీ చేస్తుంది మరియు context-switch thrashing కు కారణమవుతుంది. ఒక pool creation ఖర్చును విస్తరించి concurrency ను పరిమితం చేస్తుంది.
tasks → [ work queue ] → worker 1
worker 2 (N fixed workers pull & run)
worker 3
