对于多进程程序而言,父进程一般需要跟踪子进程的退出状态。因此,当子进程结束
运行时,内核不会立即释放该进程的进程表表项,以满足父进程后续对该子进程退出信息的
查询 (如果父进程还在运行)。在子进程结束运行之后,父进程读取其退出状态之前,我们
称该子进程处于僵尸态,另外一种使子进程进人僵尸状态是:父进程结束或者异常终止,而
子进程继续运行。
由此可见,无论哪种情况,如果父进程没有正确地处理子进程的返冋信息,子进程都将停
留在僵尸态,并占据若内核资源.这是绝对不能容许的,毕竞内核资源有限,所以我们需要
做的就是在父进程中调用 wait 函数等待查询子进程的信息,回收子进程.
文章讨论了在多进程编程中,父进程如何正确处理子进程的退出状态,以防止子进程变为僵尸态,占用内核资源。当子进程结束,内核会保留其进程表项以便父进程查询,但若父进程未使用wait函数回收,子进程将保持僵尸状态。因此,调用wait函数是必要的,以确保资源的有效释放。
1023

被折叠的 条评论
为什么被折叠?



