解决依赖构建的算法有哪些?

3
我正在构建一个类似于项目构建的系统。每个项目都有一组输入和输出,可能依赖于其他项目。我可以使用拓扑排序找到必须评估项目的顺序,但是如何进行并行构建呢?拓扑排序无法为可以并行构建的项目提供相同的等级。此外,如何进行增量构建。

这个回答解决了你的问题吗?有向无环图任务的并行执行 - Anmol Singh Jaggi
1个回答

1
您可以并行构建所有没有任何依赖关系的项目。构建后,从图形中删除已构建的项目,并再次构建没有依赖关系的项目。重复此过程,直到图形为空。
伪代码如下:
  1. 构建项目图
  2. 验证图(例如,循环依赖关系)
  3. 查找所有没有依赖关系且未在构建中的项目
  4. 开始构建所有在步骤3中找到的项目,并标记它们正在构建中
  5. 等待其中一个构建结束,并从图形中移除已构建的项目
  6. 如果图形不为空,请返回步骤3
  7. 等待其余构建完成

是的,如果每次项目构建完成后重新检查,您确实可以避免我所说的问题。 - user743382

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接