我正在构建一个类似于项目构建的系统。每个项目都有一组输入和输出,可能依赖于其他项目。我可以使用拓扑排序找到必须评估项目的顺序,但是如何进行并行构建呢?拓扑排序无法为可以并行构建的项目提供相同的等级。此外,如何进行增量构建。
您可以并行构建所有没有任何依赖关系的项目。构建后,从图形中删除已构建的项目,并再次构建没有依赖关系的项目。重复此过程,直到图形为空。伪代码如下: 构建项目图 验证图(例如,循环依赖关系) 查找所有没有依赖关系且未在构建中的项目 开始构建所有在步骤3中找到的项目,并标记它们正在构建中 等待其中一个构建结束,并从图形中移除已构建的项目 如果图形不为空,请返回步骤3 等待其余构建完成