使用多进程的好处:1.使用多进程,子进程结束后,内核会负责回收资源2.使用多进程,子进程异常退出会不会导致整个进程Thread退出。父进程还有机会重建进程。3.常驻主进程只负责任务分发,逻辑更清晰。PHP实现了多进程,Let'sGo。我们需要安装pcnt扩展pcntl是processcontrol的缩写,通常PHP会默认安装这个扩展。使用phpinfo()函数查看扩展名是否存在。使用pcntl_fork()函数创建子进程。pcntl_fork的作用是创建一个与当前进程相同的子进程。子进程代码段与当前进程完全一样,只是有自己的数据段。看最简单的创建子进程的方法:pcntl_fork()调用成功后,一个程序变成两个程序:一个程序得到的$pid变量值为0,即为子进程;另一个程序获取到的$pid的值大于0,这个值就是子进程的PID,也就是父进程。输出结果:subprocessrecovery①你刚才ps是不是阻塞模式?一般我习惯使用psaux加grep命令来查找正在运行的后台进程。有一列STAT,标识了各个进程的运行状态。在这里,我们关注状态Z:Zombie。当子进程先于父进程退出,而父进程没有对其做任何处理时,子进程就会成为僵尸进程。僵尸进程虽然占用内存不多,但是很烦人。(别忘了他们还占用着PID)一般来说,在父进程结束前回收挂起的子进程就可以了。pcntl扩展中有一个pcntl_wait()函数,通过这个方法,等待进程结束,然后回收已经结束的进程。
