我正在构建一个类似于项目构建的系统。一个项目有一组输入和输出。一个项目可能依赖于其他项目。我可以使用拓扑排序并找到我必须评估项目的顺序。但是,我如何并行构建。 Toposort 不会对可以并行构建的项目给予相同的排名。另外,我该如何进行增量构建。
最佳答案
您可以并行构建没有任何依赖项的所有项目。构建后从图中删除构建的项目并再次构建没有依赖项的项目。重复直到图形为空。
伪代码
- 构建项目图
- 验证图(例如循环依赖)
- 查找所有没有依赖项且不在构建中的项目
- 开始构建所有在 3 中找到的并将它们标记为正在构建
- 等待其中一个构建结束并从图中移除已构建的项目
- 如果图不为空转到3
- 等待休息构建
关于c# - 解决依赖构建的算法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33857423/