我有一个任务清单[Task-A,Task-B,Task-C,Task-D, ...]。
一项任务可以选择依赖于其他任务。
例如:
A 可以依赖于 3 个任务:B、C 和 D
B 可以依赖于 2 个任务:C 和 E
它基本上是一个有向无环图,并且任务的执行应该仅在执行相关任务之后发生。
现在可能会发生这样的情况:在任何时间点,都有多个任务可供执行。在这种情况下,我们可以并行运行它们。
关于如何在具有尽可能多的并行性的同时实现这样的执行有什么想法吗?
class Task{
private String name;
private List<Task> dependentTasks;
public void run(){
// business logic
}
}
Run Code Online (Sandbox Code Playgroud) java algorithm concurrency multithreading directed-acyclic-graphs