2011-08-23 27 views
6

Có an toàn khi sử dụng singleton ExecutorService và nhiều phiên bản CompletionService sử dụng cùng một nhóm luồng không?Có an toàn khi sử dụng singleton ExecutorService

CompletionService<Object> collector = new ExecutorCompletionService<Object>(threadPool); 

Vì vậy, sẽ có nhiều chủ đề tạo các trường hợp như trên, 'bộ sưu tập' với một chuỗi đơn lẻ.

+0

Tôi không thấy bất kỳ sự cố nào. Bạn có một số vấn đề cụ thể trong tâm trí mà có thể gây ra vấn đề? – toto2

+0

cảm giác ruột của tôi nói rằng không có vấn đề gì. Nhưng tôi muốn xác nhận trước khi sử dụng nó như tôi không thể tìm thấy và tài liệu cụ thể về điều này. – ankitjaininfo

Trả lời

5

Sẽ ổn thôi. Mỗi cá thể của ExecutorCompletionService duy trì hàng đợi nhiệm vụ hoàn thành của riêng mình và chỉ sử dụng số Executor cơ bản để xử lý từng tác vụ.

Các tác vụ có thể gây trở ngại cho từng hoạt động khác nếu số lượng dịch vụ hoàn thành lớn và nhóm luồng có giới hạn trên nhưng điều đó sẽ không ảnh hưởng đến tính chính xác của kết quả.

Các vấn đề liên quan