Iterator pracy równoległej Java?
Szukam klasy, w której mogę zastąpić metodę wykonywania pracy i zwracać wyniki jak iterator. Coś takiego:
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...
}
Będzie to głównie wykorzystywane do takich rzeczy jak symulacje monte carlo, ale nie chcę zajmować się konfigurowaniem pul wątków i zarządzaniem powracającymi wątkami za każdym razem. Wyrzuciłem własną klasęufnie osiąga to, ale nie jestem w tym wystarczająco pewny i pomyślałem, że sprawdzę, czy coś takiego już istnieje.
Edytuj: Żeby było jasne, chcę, aby działał w tle, a wyniki kolejkowania po każdym powrocie metody pracy, aż wszystkie testy zostaną zakończone. Zatem następna metoda może czekać na powrót, aż w kolejce pojawi się wynik.