我在多进程程序中有一个错误。该程序接收输入并立即产生输出,不涉及网络,也没有任何时间参考。是什么让这个错误的原因难以追查是它只是偶尔发生。
如果我不断地运行它,它会产生正确和不正确的输出,没有可辨别的顺序或模式。
什么会导致这种不确定的行为?有没有可以提供帮助的工具?有可能存在未初始化的变量。我如何找到那些?
编辑:问题已解决,感谢任何建议 Race Condition的人。我没有想到它主要是因为我确信我的设计可以防止这种情况发生。问题是我使用了“wait”而不是“waitpid”,因此有时,当某个进程幸运地在我期望的进程之前完成时,事情的正确顺序就会变得疯狂。