2017-02-23 58 views
-2

Предположим, у меня есть 5 задач a, b, c, d и e. Задачи b c d зависят от a и e, зависит от e, 5 задач состоят из DAG. enter image description hereРамка выполнения темы/задачи в Java

Интуитивно задача b c d должна выполняться параллельно. Может ли любая библиотека с открытым исходным кодом получить это легко?

+0

* Вопросы просят нас, чтобы рекомендовать или найти книгу, инструмент, библиотеку программного обеспечения, учебник или другие пределы участка ресурс off- тема для переполнения стека, поскольку они склонны привлекать упрямые ответы и спам. Вместо этого опишите проблему и то, что было сделано до сих пор, чтобы ее решить. * – GhostCat

+2

Я читал в DAG, но позже выяснил, что это не имеет значения. –

+0

Да, есть библиотека с открытым исходным кодом: JDK. Прекрасно совместим с технологией Java на борту. – Fildor

ответ

1

JDK 1.8 представил CompletableFuture. Он обеспечивает быстрое использование api для комбинирования выполнения нитей. (http://www.deadcoderising.com/java8-writing-asynchronous-code-with-completablefuture/)

В вашем примере, она может быть использована таким образом:

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); 

 Смежные вопросы

  • Нет связанных вопросов^_^