Ok, vì vậy tôi biết câu trả lời/nhận xét đầu tiên ở đây sẽ là" sử dụng một số ExecutorService
và sử dụng invokeAll
". Tuy nhiên, có một lý do chính đáng (mà tôi sẽ không cho người khác) để chúng tôi giữ riêng các hồ sợi.Cách đợi danh sách `Tương lai` được tạo bằng cách sử dụng `ExecutorServices` khác nhau
Vì vậy, tôi có một danh sách các hồ bơi chủ đề (ExecutorServices
) và những gì tôi cần làm là gọi Callable
khác nhau trên mỗi nhóm hồ sơ bằng cách sử dụng submit
(không có vấn đề ở đó). Bây giờ tôi có bộ sưu tập này gồm Future
trường hợp, mỗi phiên bản được tạo trên ExecutorService
riêng biệt và tôi muốn đợi tất cả chúng hoàn thành (và có thể cung cấp thời gian chờ mà không được hủy bỏ).
Có lớp học hiện tại nào sẽ thực hiện việc này hay không (bao gồm danh sách các trường hợp Future
và chờ đợi cho đến khi tất cả được thực hiện)? Nếu không, đề xuất về một cơ chế hiệu quả sẽ được đánh giá cao.
Nghĩ đến việc gọi get
với thời gian chờ cho mỗi lần nhưng phải tính toán tổng thời gian được chuyển cho mỗi cuộc gọi.
Tôi thấy bài đăng này Wait Until Any of Future is Done nhưng điều này mở rộng Future
thay vì gói một danh sách.
cho mỗi danh sách đó và khi lần cuối cùng được thực hiện - như họ nói –
Cập nhật bài đăng để làm rõ rằng thời gian chờ là vấn đề và tôi hy vọng không sáng tạo lại bánh xe trong vấn đề đó. –
tốt nếu bạn đọc những tài liệu java tiện lợi, bạn sẽ thấy rằng bạn có thể AwaitTermination và thiết lập thời gian chờ sau đó khi bạn gửi các nhiệm vụ của bạn, bạn có thể gửi nó tắt và nếu nhiệm vụ không hoàn thành trong thời gian nó bị tắt máy sau khi hết thời gian chờ wabamzorz ur! !!! –