【发布时间】:2013-06-13 21:04:38
【问题描述】:
当您编写一个应该并行运行的 makefile 时,您知道一些避免竞争条件的方法吗?有某种障碍吗?如何按顺序运行某个部分?或者,我怎样才能暂停其他处理器,直到创建一些关键对象?
谢谢!
【问题讨论】:
-
Make 应该自己解决这个问题除非你使用递归 make 在这种情况下你已经违反了保证。如果您还没有阅读它,请搜索“Recursive Make Considered Harmful”。
-
请注意,make 本身(无论如何是 GNU make)是单线程的,因此(除非 dmckee 所说的递归错误)永远不会有竞争条件。它实现并行的方式是在后台同时运行多个命令。因此,只要您的命令在编写时不相互交互,您就不会遇到竞争条件问题。如果您有具体问题,请描述它。
-
看起来您正在使用
-j。检查stackoverflow.com/a/16831451/2235132 是否有帮助。
标签: build compilation makefile