ایک thread pool دوبارہ استعمال ہونے والے worker threads کا ایک مقررہ set ہے جو ایک مشترکہ work queue سے tasks اٹھاتے ہیں۔ یہ ہر task کے لیے ایک thread بنانے کی لاگت سے بچتا ہے اور بیک وقت threads کی تعداد کو محدود کرتا ہے۔
اسے کیوں استعمال کریں
threads بنانا اور ختم کرنا مہنگا ہے (stack allocation، OS scheduling setup)، اور لامحدود thread creation memory ختم کر دیتی ہے اور context-switch thrashing کا سبب بنتی ہے۔ ایک pool creation کی لاگت کو amortize کرتا ہے اور concurrency کو محدود کرتا ہے۔
tasks → [ work queue ] → worker 1
worker 2 (N fixed workers pull & run)
worker 3
