Thread pool là gì?

Noun None

Trong lập trình, thread pool là một mẫu thiết kế (design pattern) phần mềm để đạt được sự đồng thời (concurrency) của việc thực thi (execution) trong một chương trình máy tính. Thường còn được gọi là replicated workers hoặc worker-crew model. Thread pool duy trì nhiều luồng (thread) chờ các tác vụ (task) được phân bổ (allocate) để thực hiện đồng thời bởi chương trình giám sát (supervisory program). Bằng cách duy trì một pool của các luồng, mô hình tăng hiệu suất (performance) và tránh độ trễ (latency) trong quá trình thực thi do thường xuyên tạo và hủy các luồng cho các tác vụ tồn tại trong thời gian ngắn. Số lượng luồng có sẵn được điều chỉnh theo tài nguyên tính toán (computing resource) có sẵn cho chương trình.

Kích thước của một thread pool là số luồng được giữ lại để dự trữ cho việc thực thi các tác vụ. Nó thường là một tham số có thể điều chỉnh được của ứng dụng, được điều chỉnh để tối ưu hóa hiệu suất (performance) chương trình. Quyết định kích thước thread pool tối ưu là rất quan trọng để tối ưu hóa hiệu suất.

Một lợi ích của thread pool so với việc tạo một luồng mới cho mỗi tác vụ là chi phí (overhead) tạo và hủy luồng bị hạn chế đối với việc tạo pool, điều này có thể dẫn đến hiệu suất tốt hơn và hệ thống ổn định hơn. Tạo và hủy một luồng và các tài nguyên liên quan của nó có thể là một quá trình tốn kém về mặt thời gian. Tuy nhiên, quá nhiều luồng dự trữ sẽ gây lãng phí bộ nhớ và việc chuyển đổi ngữ cảnh(context switch) giữa các luồng có thể sẽ dẫn đến các suy giảm về hiệu suất.

Learning English Everyday