Java中的线程/任务执行框架

Java中的线程/任务执行框架,java,concurrency,parallel-processing,Java,Concurrency,Parallel Processing,假设我有5个任务a、b、c、d和e。任务b c d依赖于a,e依赖于e,这5个任务组成一个DAG。 直观地说,任务b c d应该并行运行。任何开源库都可以轻松实现这一点吗?JDK1.8引入了CompletableFuture。它提供了用于组合线程执行的流畅api。() 在您的示例中,可以这样使用: CompletableFuture futurA = CompletableFuture.runAsync(A); CompletableFuture futurB = futurA.thenRun

假设我有5个任务a、b、c、d和e。任务b c d依赖于a,e依赖于e,这5个任务组成一个DAG。


直观地说,任务b c d应该并行运行。任何开源库都可以轻松实现这一点吗?

JDK1.8引入了CompletableFuture。它提供了用于组合线程执行的流畅api。()

在您的示例中,可以这样使用:

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

要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题对于堆栈溢出来说是离题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,请描述这个问题以及迄今为止为解决它所做的工作。我正在阅读DAG,但后来发现它与此无关。是的,有一个开源库:JDK。使用Java车载技术完全可行。