wait函数如何知道可供选择的线程信息

时间:2014-03-05 04:37:05

标签: process posix

  

wait()函数应该暂停执行调用线程   直到其中一个已终止的子进程的状态信息   调用过程可用

假设父进程有许多子进程,wait函数选择从哪个子进程中获取状态信息?它是第一个终止???的子进程吗?

这是否意味着wait函数()将从终止的第一个子进程获取状态信息,之后调用线程的执行将继续,但其他子进程可能仍在运行?

有人可以为我提出这个问题的更好标题

1 个答案:

答案 0 :(得分:1)

wait阻止执行调用程序(父程序)。它将处理死亡的第一个孩子的信息。那个孩子在调用wait之前可能已经死亡,在这种情况下,wait将立即返回子信息。在wait返回后,程序可以继续执行其他操作,包括再次调用wait - 例如在循环中 - 以收获任何将来死去的孩子。

您还可以使用waitpid,它允许您等待特定的孩子并有其他几个选项,包括NOHANG,它允许您在没有阻止的情况下轮询死亡的孩子,从而允许父母做其他事情。与此同时。