Thread pool là một tập cố định các worker thread tái sử dụng, lấy task từ một work queue dùng chung. Nó tránh chi phí tạo một thread cho mỗi task và giới hạn số thread chạy đồng thời.
Vì sao dùng
Tạo và huỷ thread tốn kém (cấp phát stack, thiết lập scheduling ở OS), và tạo thread không giới hạn làm cạn bộ nhớ và gây thrashing do context-switch. Pool phân bổ đều chi phí tạo và chặn trên số concurrency.
text
tasks → [ work queue ] → worker 1
worker 2 (N worker cố định lấy & chạy)
worker 3
Ví dụ
python
concurrent.futures ThreadPoolExecutor
ThreadPoolExecutor(max_workers=) pool:
futures = [pool.submit(handle, req) req requests]
