在 fork() 中,创建子进程时,通常父进程会等待子进程完成,所以我想知道创建子进程的原因是什么,如果它必须等待空闲等待它完成,而不是执行工作本身?我试着阅读一些关于它的东西,但它让我更加困惑
最佳答案
你很困惑: parent 可能会“等待” child ,但并不一定意味着它在等待之前什么都不做。 parent 做它的事情,然后调用等待。如果子进程已经完成,wait 立即返回,否则父进程可能空闲(即未被操作系统安排执行)一段时间,直到子进程真正完成。
一个例子:绿色的 parent fork 黄色的 child 。 child 可能在 parent 等待之前或之后完成:
有些情况要求 parent 什么都不做,例如它会产生许多工作进程,然后等待它们全部完成,从而简单地充当管理器...
关于Linux Fork 的目的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23081240/