多个fork()调用是否需要同步结构?

时间:2018-12-16 00:22:27

标签: synchronization fork wait

看一下fork()函数的示例,我不确定何时以及何时不使用wait()调用。我假设并不需要使用wait()调用,它更多地用作错误处理工具,以防父进程派生太多子进程。但是,我不确定,对此主题的任何澄清都不会非常有帮助。

1 个答案:

答案 0 :(得分:0)

  

我认为并不需要使用wait()调用,更多情况下使用它   错误处理工具

不是真的。

当父进程需要知道子进程何时完成时,需要

wait系统调用。

例如在我的一个项目中,我要求允许一次运行并行的 n 子任务。我所做的是使用fork产生了一个子任务。然后生成一个线程,该线程执行waitpid等待生成的子任务完成,以调节并行的 n 子任务的流程。

您可以检查here如何使用fork和waitpid来满足任务计划程序约束。