• 技术文章 >后端开发 >PHP问题

    php如何管理进程

    (*-*)浩(*-*)浩2019-09-20 13:15:05原创1346

    php入门到就业线上直播课:进入学习

    进程管理-防止进程成为僵尸进程

    创建好了进程,那么怎么对子进程进行管理呢?

    使用信号,对子进程的管理,一般有两种情况:(推荐学习:PHP编程从入门到精通

    posix_kill():此函数并不能顾名思义,它通过向子进程发送一个信号来操作子进程,在需要要时可以选择给子进程发送进程终止信号来终止子进程;

    pcntl_waitpid():等待或返回fork的子进程状态,如果指定的子进程在此函数调用时已经退出(俗称僵尸进程),此函数将立刻返回,并释放子进程的所有系统资源,此进程可以避免子进程变成僵尸进程,造成系统资源浪费;

    孤儿进程:父进程挂了,子进程被pid=1的init进程接管(wait/waitpid),直到子进程自身生命周期结束被系统回收资源和父进程 采取相关的回收操作

    僵尸进程:子进程exit退出,父进程没有通过wait/waitpid获取子进程状态,子进程占用的进程号等描述资源符还存在,产生危害:例如进程号是有限的,无法释放进程号导致未来可能无进程号可用

    **父进程中使用:pcntl_wait或者pcntl_waitpid的目的就是防止worker成为僵尸进程

    作用:使用pcntl_wait()后,在子进程死掉后,父进程也会被停止**

    最后我们通过下图来简单的总结和描述这个多进程实现的过程:

    php-174.png

    进程管理-进程间通信

    队列:如Redis,推荐

    socket:推荐

    管道:实现复杂,且管道(pipe),使用文件形式存在,存在硬盘IO性能瓶颈

    信号:承载信息量少,不好管理

    进程管理-切换为守护进程

    使用&实现

    php deadloop.php &

    以上就是php如何管理进程的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:php
    上一篇:php如何管理内存 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• PHP中常用的18个字符串函数• php如何输出反斜杠• php如何实现session共享• php如何进行md5加密
    1/1

    PHP中文网