欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  头条

微博 Qzone 微信 pcntl_fork实现PHP多进程

程序员文章站 2022-03-26 12:46:33
...
PHP工程师平时使用最多的应该是PHP-FMP调度php进程了,PHP的使用并不局限于做Web,也可以用来进行系统工具类的编程,做监控或者是运维。接下来就说说如何实现PHP多进程的编程。

首先启动一个主进程,主进程用来读取配置信息

例如,我读取到了我需要监控5个指标。接下来主进程启动5个子进程,分别监控这5个指标。

化简操作:一个主进程创建5个子进程

创建进程在需要使用php的一个函数pcntl_fork(),这个函数可能有的人不太熟,不过接触过Linux C变成的人都知道Linux下有个叫fork()的函数,用来创建子进程。

需要注意的是:这个函数在Linux下才能使用,而且需要安装pcntl的扩展。

官方文档是这样说的:

pcntl_fork()函数创建一个子进程,这个子进程仅PID(进程号) 和PPID(父进程号)与其父进程不同。fork怎样在您的系统工作的详细信息请查阅您的系统 的fork(2)手册。

成功时,在父进程执行线程内返回产生的子进程的PID,在子进程执行线程内返回0。失败时,在 父进程上下文返回-1,不会创建子进程,并且会引发一个PHP错误。

这样就可以创建一个子进程了,子进程创建成功以后会执行pcntl_fork()之后的方法。

相关标签: php pcntl Qzone