Ho un sacco di runnables che voglio eseguire in più thread e alcuni dipendono da altri da completare prima di iniziare. Ho scritto una semplice utility per farlo, ma c'è una libreria che già fornisce questa funzionalità?Esiste una libreria java per la pianificazione dei runnables dipendenti (fornita in un DAG di dipendenza)?
risposta
È possibile utilizzare un CountDownLatch per coordinare le attività di fili
Risposta utile, anche se non fornisce una semplice API per eseguire attività dipendenti. – jonderry
Questo sembra un problema abbastanza semplice che il rollover del proprio sistema non sarebbe male (e qualsiasi altra libreria sarà eccessiva). Lo implementerei avendo una classe che agisce come un "nodo" - racchiude un Runnable, e conosce le sue dipendenze e dipendenze, e ha anche un "CountDownLatch" per il coordinamento. Poi un'altra classe ne prenderà un mucchio, calcolerà un ordinamento totale su di loro e li fornirà ad un Executor in quell'ordine (per evitare un deadlock). –
"alcuni dipendono da altri per completare prima di iniziare".
Presumo che questo significhi che alcune attività utilizzano i risultati di altre attività come argomenti di input. In tal caso, cercare "java dataflow" o "java workflow".
Se gli argomenti di input per ciascuna attività possono essere rappresentati con una singola coda sequenziale, questo tipo speciale di flusso di dati è noto come "Modello attore", quindi cercare "libreria o framework di attori Java".
In particolare, un progetto opensource di mine df4j supporta entrambi gli stili di flusso di dati e attore.
- 1. Dipendenza "fornita" in Gradle
- 2. Libreria di pianificazione distribuita per uso generico per Java
- 3. grafico dipendenza dipendenza per una classe java
- 4. Esiste una libreria client CalDAV per Java?
- 5. Esiste una libreria Java di funzioni Unix?
- 6. Disattiva la registrazione nella libreria di pianificazione
- 7. Libreria di pianificazione in C++ simile a Java Quartz
- 8. Esiste una libreria Java per la definizione dei predicati come stringhe SQL-like?
- 9. Visualizzazione di un DAG
- 10. Esegui l'elenco dei runnables con time gap
- 11. Esiste una buona libreria di crittografia GnuPG per Java/Scala?
- 12. pianificazione attività eseguibili in java
- 13. Esiste una libreria Java per accedere all'API di Windows nativo?
- 14. Esiste una libreria Java per semplificare Google Cloud Messaging?
- 15. Pianificazione dei veicoli/pianificazione dell'algoritmo delle risorse
- 16. Esiste una libreria Java per analizzare i file PO gettext?
- 17. Esiste una libreria disponibile per la compressione in Javascript
- 18. Esiste una libreria simile a lxml o nokogiri per Java?
- 19. Esiste una libreria di hashmap per JavaScript?
- 20. Esiste una libreria AES per clojure?
- 21. Esiste una libreria Telnet per JavaScript?
- 22. Esiste una libreria javascript per la creazione di grafici?
- 23. Esiste già una libreria OAuth2 per Java/Android?
- 24. Attività di pianificazione in primavera/Java
- 25. Esiste una chiamata alla libreria per addr2line?
- 26. Libreria Java per l'analisi dei parametri della riga di comando?
- 27. Esiste una libreria C++ per estrarre il testo da un file PDF come PDFBox per Java?
- 28. Algoritmo di pianificazione lavoro in Java
- 29. Pianificazione, gestione e reporting dei lavori distribuiti
- 30. Esiste un repository di libreria per C?
Il motore di elaborazione come [tag: activiti] o [tag: jbpm] è eccessivo per te? –
Java3D ha qualcosa del genere, ma non so dove sia –
@Tomasz, grazie per i suggerimenti. Sì, quelli sono probabilmente esagerati. – jonderry