Tôi có một chương trình tạo ra các luồng (~ 5-150) thực hiện một loạt các tác vụ. Ban đầu, tôi sử dụng a FixedThreadPool
vì câu hỏi tương tự này gợi ý rằng chúng phù hợp hơn với các tác vụ tồn tại lâu hơn và với kiến thức rất hạn chế của tôi về đa luồng, tôi coi tuổi thọ trung bình của các luồng (vài phút) là " lâu dài ".
Tuy nhiên, gần đây tôi đã thêm khả năng tạo ra các luồng bổ sung và làm như vậy sẽ đưa tôi vượt quá giới hạn luồng mà tôi đã đặt. Trong trường hợp này, tốt hơn là nên đoán và tăng số chủ đề tôi có thể cho phép hoặc chuyển sang a CachedThreadPool
để tôi không có chủ đề lãng phí?
Thử sơ bộ cả hai, dường như không có sự khác biệt nên tôi có xu hướng chọn loại CachedThreadPool
vừa phải để tránh lãng phí. Tuy nhiên, tuổi thọ của các luồng có nghĩa là tôi nên chọn một FixedThreadPool
và chỉ xử lý các luồng không sử dụng? Câu hỏi này có vẻ như những chủ đề bổ sung đó không bị lãng phí nhưng tôi sẽ đánh giá cao việc làm rõ.