Worker Pool مجموعه محدودی از پردازشگرها یا تردهاست که کارهای موجود در صف را دریافت میکنند. با محدود نگه داشتن همزمانی از اشباع CPU، پایگاه داده و سرویسهای بیرونی جلوگیری میشود.
from concurrent.futures import ThreadPoolExecutor
def send_receipt(order_id):
print('sent', order_id)
with ThreadPoolExecutor(max_workers=4) as pool:
list(pool.map(send_receipt, [101, 102, 103]))
ThreadPoolExecutor برای کارهای I/O-bound مناسب است و معادل Queue پایدار یا پردازش چندماشینه نیست.
اصطلاحات مرتبط: ورکر، صف، بک پرشر، کانکارنسی.
ورکر پول و کنترل فشار
Worker Pool تعداد کارهای همزمان را محدود میکند. در بارهای I/O و CPU تعداد مناسب Worker متفاوت است. صف نامحدود ممکن است مشکل را پنهان کند و مصرف حافظه را بالا ببرد.