wait()函数应该暂停执行调用线程 直到其中一个已终止的子进程的状态信息 调用过程可用
假设父进程有许多子进程,wait函数选择从哪个子进程中获取状态信息?它是第一个终止???的子进程吗?
这是否意味着wait函数()将从终止的第一个子进程获取状态信息,之后调用线程的执行将继续,但其他子进程可能仍在运行?
有人可以为我提出这个问题的更好标题
答案 0 :(得分:1)
wait
阻止执行调用程序(父程序)。它将处理死亡的第一个孩子的信息。那个孩子在调用wait
之前可能已经死亡,在这种情况下,wait
将立即返回子信息。在wait
返回后,程序可以继续执行其他操作,包括再次调用wait
- 例如在循环中 - 以收获任何将来死去的孩子。
您还可以使用waitpid
,它允许您等待特定的孩子并有其他几个选项,包括NOHANG,它允许您在没有阻止的情况下轮询死亡的孩子,从而允许父母做其他事情。与此同时。