前文说过,子进程被创建之后,父子进程究竟谁先运行是由调度器说了算。
但是,谁先结束呢?一般来说肯定是要让子进程先结束,想一想我们的bash,bash是所有命令的父进程,你总不能让bash先挂吧
其实之所以让子进程先退出,是因为父进程容易对子进程进行管理,而且子进程被创建的原因就是因为父进程想要让子进程帮助自己完成一些业务,因此它要拿到结果。因此父进程一般需要等待子进程
(1)为什么子进程需要被等待
既然子进程要先退出,那么子进程退出后就变成了僵尸状态,一旦变成僵尸状态,这个子进程就如同僵尸一样,杀也杀不死(因为它已经死了),所以它必须需要让父进程读取到它的状态,回收子进程信息。只有这样,子进程才能得到“救赎”,“魂魄”才能归天