Tôi đang tìm một lớp mà tôi có thể ghi đè phương thức để thực hiện công việc và trả lại kết quả như một trình lặp. Một cái gì đó như thế này:Java iterator công việc song song?
ParallelWorkIterator<Result> itr = new ParallelWorkIterator<Result>(trials,threads) {
public Result work() {
//do work here for a single trial...
return answer;
}
};
while (itr.hasNext()) {
Result result = itr.next();
//process result...
}
Điều này chủ yếu sẽ được sử dụng cho những thứ như mô phỏng monte carlo, nhưng tôi không muốn phải đối phó với việc thiết lập hồ bơi chủ đề và quản lý các chủ đề trả về mỗi lần. Tôi đã cuộn lớp của riêng mình rằng hy vọng hoàn thành điều này, nhưng tôi không đủ tự tin và nghĩ rằng tôi sẽ kiểm tra xem có điều gì đó như thế này đã tồn tại chưa.
Chỉnh sửa: Để rõ ràng, tôi muốn nó tiếp tục chạy dưới nền và xếp hàng đợi kết quả sau mỗi phương thức công việc sẽ trả về cho đến khi tất cả các thử nghiệm đã được hoàn thành. Vì vậy, các phương pháp tiếp theo có thể chờ đợi để trở lại cho đến khi có một kết quả trong hàng đợi.
Cảm ơn, có vẻ như mọi thứ tôi muốn. Tôi chỉ muốn java không quá chi tiết. – job
tiết và rõ ràng là một nửa thanh kiếm hai lưỡi. –
Những gì tôi đã làm để xử lý verbosity là viết một lớp bao bọc kéo dài ExecutorCompletionService, và giữ một danh sách các tương lai đã gửi. Boolean hasRemaining() {return 0
Tim