php - 多进程

pcntl_fork() --> 创建一个子进程

创建完子进程之后,如果不回收,就会出现两种情况,孤儿和僵尸的情况
孤儿的情况就是,父进程提前关闭,子进程还在运行,导致子进程没有父进程,这个时候就只能依附到其他进程,默认是pid=1的进程
僵尸情况就是,子进程关闭后,父进程没有回收子进程,这种情况就会很严重,必须要进行一个处理

pcntl_wait() --> 回收一个子进程

这个方法可以进行回收子进程资源,但是会导致主进程被阻塞,不能继续进行下去,这个时候就需要使用pcntl_waitpid()这个方法

pcntl_waitpid() --> 回收一个子进程,并且不阻塞主进程

这个方法就需要配合循环信号处理器,来处理pcntl_signal(),为父进程创建一个信号处理器

pcntl_signal_dispatch() --> 写在while中进行循环派送信号,一旦子进程结束就激活信号处理器

posted @ 2020-11-21 23:34  ReYiRFW  阅读(78)  评论(0编辑  收藏  举报