Mam kilka runnables Chcę uruchomić w wielu wątków, a niektóre zależą od innych, aby zakończyć, zanim zaczną. Napisałem proste narzędzie do tego, ale czy istnieje biblioteka, która już zapewnia taką możliwość?Czy istnieje biblioteka Java dla planowania zależnych runnables (podane w DAG zależności)?
Odpowiedz
Można użyć CountDownLatch aby koordynować rodzajów zajęć wątków
Przydatna odpowiedź, choć nie zapewnia ona prostego interfejsu do uruchamiania zadań zależnych. – jonderry
Wydaje się, że jest to dość prosty problem, który sprawi, że twój własny system nie będzie zbyt zły (a jakakolwiek inna biblioteka będzie przesadna). Wdrożyłbym go, mając jedną klasę, która działa jak "węzeł" - opakowuje Runnable i zna jego zależności i zależności, a także ma "CountDownLatch" do koordynacji. Następnie inna klasa, która weźmie ich w garść, obliczy całkowitą kolejność nad nimi i poda je Executorowi w tej kolejności (aby zapobiec zakleszczeniu). –
„niektóre zależą od innych, aby zakończyć, zanim zaczną”.
Zakładam, że oznacza to, że niektóre zadania wykorzystują wyniki innych zadań jako argumenty wejściowe. Jeśli tak, szukaj "java dataflow" lub "java workflow".
Jeśli argumenty wejściowe dla każdego zadania mogą być reprezentowane za pomocą pojedynczej kolejki, ten specjalny rodzaj przepływu danych jest znany jako "Model aktora", więc wyszukaj "bibliotekę lub framework programu java actor".
W szczególności mój otwarty projekt min. df4j obsługuje style przepływu danych i aktorów.
- 1. Czy istnieje jakaś biblioteka ActiveResource dla Java?
- 2. Biblioteka zbiorczego planowania rozproszonego ogólnego przeznaczenia dla języka Java
- 3. Czy istnieje biblioteka programowania funkcjonalnego dla .NET?
- 4. Czy istnieje adnotacja? Jak działa biblioteka? (Java)
- 5. Czy istnieje biblioteka Java funkcji Unix?
- 6. Czy istnieje dobra biblioteka szyfrowania GnuPG dla Java/Scala?
- 7. Czy istnieje biblioteka klienta CalDAV dla języka Java?
- 8. Biblioteka WebP dla java?
- 9. Czy istnieje biblioteka unrar dla systemu iOS?
- 10. Czy istnieje dziesiętna biblioteka matematyczna dla JavaScript?
- 11. Czy istnieje rozszerzona biblioteka funkcji dla SQLite?
- 12. Czy istnieje samodzielna biblioteka QUIC dla Google?
- 13. Czy istnieje biblioteka hashmap dla JavaScript?
- 14. Biblioteka SSH dla Java
- 15. Czy istnieje zadanie "zależności" programu Gradle dla zależności buildScript?
- 16. Czy istnieje coś takiego jak Sprocket dla Java
- 17. Różne sposoby wdrożenia DAG w java
- 18. Biblioteka Java SSH dla Androida?
- 19. Biblioteka JS do wyświetlania bezpośrednich wykresów acyklicznych (DAG)
- 20. Czy istnieje parser Java dla języka Java?
- 21. Czy istnieje biblioteka JavaScript iCalendar?
- 22. Podane zależności mogą być tylko słojami.
- 23. Czy istnieje biblioteka Java do analizowania łańcuchów formatu printf?
- 24. Czy istnieje odpowiednia biblioteka refleksji dostępna dla Scala?
- 25. Jak mogę sprawdzić, czy podane int istnieje w tablicy?
- 26. Konfiguracje planowania freeRTOS dla zadań
- 27. Czy istnieje biblioteka dla zestawu danych typu w języku JavaScript?
- 28. Czy istnieje biblioteka Java, która może "zmienić" dwa obiekty?
- 29. Biblioteka w java
- 30. Czy framework dla architektury Java istnieje dla Java?
Czy procesowy silnik taki jak [tag: activiti] czy [tag: jbpm] jest dla ciebie przesadą? –
Java3D ma coś takiego w tym, ale nie wiem gdzie –
@ Tom, dzięki za wskazówki. Tak, to prawdopodobnie przesada. – jonderry