ਇੱਕ thread pool ਦੁਬਾਰਾ-ਵਰਤੋਂਯੋਗ worker threads ਦਾ ਇੱਕ ਸਥਿਰ ਸੈੱਟ ਹੈ ਜੋ ਇੱਕ ਸਾਂਝੀ work queue ਤੋਂ tasks ਖਿੱਚਦੇ ਹਨ। ਇਹ ਹਰ task ਲਈ ਇੱਕ thread ਬਣਾਉਣ ਦੀ ਲਾਗਤ ਤੋਂ ਬਚਦਾ ਹੈ ਅਤੇ concurrent threads ਦੀ ਗਿਣਤੀ ਨੂੰ ਸੀਮਿਤ ਕਰਦਾ ਹੈ।
ਇੱਕ ਕਿਉਂ ਵਰਤੀਏ
Threads ਬਣਾਉਣਾ ਅਤੇ ਨਸ਼ਟ ਕਰਨਾ ਮਹਿੰਗਾ ਹੈ (stack allocation, OS scheduling setup), ਅਤੇ ਬੇਹੱਦ thread ਬਣਾਉਣਾ memory ਨੂੰ ਥਕਾ ਦਿੰਦਾ ਹੈ ਅਤੇ context-switch thrashing ਪੈਦਾ ਕਰਦਾ ਹੈ। ਇੱਕ pool creation ਲਾਗਤ ਨੂੰ ਵੰਡ ਦਿੰਦਾ ਹੈ ਅਤੇ concurrency ਨੂੰ ਸੀਮਿਤ ਕਰਦਾ ਹੈ।
tasks → [ work queue ] → worker 1
worker 2 (N fixed workers pull & run)
worker 3
