我希望实现一个Java应用程序,该应用程序将计算一组要执行的任务。任务将相互依赖,形成一个有向图。是否有现有的SDK或算法(最好是Java)对我有帮助:

  • 定义任务图
  • 确保图
  • 中没有循环依赖性
  • 使用线程池
  • 执行图中的任务

    步骤3是最重要的部分。我需要以并行方式执行任务以实现最佳性能,但要确保在依赖项之前不执行任务。

    最佳答案

    看一下以前的question,它实际上建议使用JGraphT

    显然,它将使1)变得容易,并为第3部分提供了循环检测器。不要以为它会为您做第3部分,但您要做的就是让所有出顶点(或度数,取决于您的表示形式)的顶点都为0,然后开始执行这些任务。任务完成后,请从图形中删除顶点,然后重新开始。

    10-06 11:22