Java中的定向图处理

Bil*_*sky 8 java algorithm multithreading graph threadpool

我期待实现一个Java应用程序,它将计算一组要执行的任务.任务将彼此依赖,形成有向图.是否有现有的SDK或算法(最好是Java)可以帮助我:

  1. 定义任务图
  2. 确保图中没有循环依赖项
  3. 使用线程池执行图中的任务

第3步是最重要的部分.我需要以并行方式执行任务以获得最大性能,同时确保在依赖项之前不执行任务.

bra*_*ain 4

看一下上一个问题,它本质上建议使用JGraphT

显然,它将使 1) 变得容易,并且具有用于第 3) 部分的循环检测器。不要认为它会为您完成第 3 部分,但您需要做的就是获取出度(或入度,取决于您的表示)为 0 的所有顶点并开始这些任务。任务完成后,从图中删除顶点并重新开始。