moje pytanie brzmi, czy istnieje framework w Javie do zarządzania i jednoczesnego uruchamiania zadań, które mają zależności logiczne.Java Framework do zarządzania zadaniami
Moje zadanie wygląda następująco: Mam wiele niezależnych zadań (powiedzmy: A, B, C, D ...), Są one implementowane jako polecenia (jak w strukturze polecenia). Chciałbym mieć swego rodzaju wykonawcę, który zaakceptuje wszystkie te zadania i wykona je równolegle. Zadania mogą być zależne od siebie (na przykład, nie mogę uruchomić C, zanim uruchomię A), synchroniczne lub asynchroniczne.
Chciałbym również wprowadzić niestandardowe heurystyki, aby wpłynąć na wykonanie harmonogramu, na przykład, jeśli zadania A i B są obciążone przez procesor, a C ma, powiedzmy, wysokie zużycie pamięci, ma sens uruchamianie A i C w równolegle, zamiast uruchamiać A i B.
Przed nurkowaniem w budowanie tych rzeczy przeze mnie (myślę o java.util.concurrent + uwarunkowaniach opartych na ograniczeniach/regułach), zastanawiałem się, czy ktoś mógłby wskazać mi na jakiś projekt, który może odpowiadać moim potrzebom. Bardzo dziękuję z góry
Czy spojrzeć na Fork/Join? –
Zastanawiam się, czy zadania wykorzystują ponownie wyniki, czy nie. Jeśli są raczej niezależnymi jednostkami pracy z predefiniowaną sekwencją, wówczas planowanie i niestandardowa heurystyka mogłyby zostać rozwiązane przez całkiem prosty niestandardowy executor puli wątków. –
Tak, myślę również o użyciu Executor Services z java.util.concurrent, zadania wydają się być niezależne w zakresie ponownego wykorzystania wyników z siebie nawzajem. Powinienem rzucić okiem na widelec/join, jak uprzejmie zaproponował Viktor Klang. –