2017-02-23 2 views
-2

Angenommen, ich habe 5 Aufgaben a, b, c, d und e. Aufgaben b c d hängen von a ab und e hängt von e ab, die 5 Aufgaben bestehen aus einer DAG. enter image description hereThread/Task-Ausführung Framework in Java

Intuitiv sollte die Aufgabe b c d parallel verlaufen. Kann eine Open-Source-Bibliothek das problemlos erreichen?

+0

* Fragen Sie uns fragen, empfehlen oder ein Buch, Werkzeug, Software-Bibliothek, Tutorial oder andere Off-Site-Ressource zu finden sind off- Thema für Stack Overflow, da sie dazu neigen, eigensinnige Antworten und Spam zu bekommen. Beschreiben Sie stattdessen das Problem und was bisher unternommen wurde, um es zu lösen. * – GhostCat

+2

Ich habe in die DAG gelesen, um später festzustellen, dass es irrelevant ist. –

+0

Ja, es gibt eine Open-Source-Lib: Das JDK. Perfekt mit Java-on-Board-Technologie möglich. – Fildor

Antwort

1

JDK 1.8 führte die CompleableFuture ein. Es bietet eine fließende API für die Kombination von Gewindeausführungen. (http://www.deadcoderising.com/java8-writing-asynchronous-code-with-completablefuture/)

In Ihrem Beispiel könnte es auf diese Weise verwendet werden:

CompletableFuture futurA = CompletableFuture.runAsync(A); 
CompletableFuture futurB = futurA.thenRun(B); 
CompletableFuture futurC = futurA.thenRun(C); 
CompletableFuture futurD = futurA.thenRun(D); 
CompletableFuture.allOf(futureB, futureC, futureD).thenRun(E);