首页  >  文章  >  微博 Qzone 微信 pcntl_fork实现PHP多进程

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

小云云
小云云原创
2017-11-03 13:57:331911浏览

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()之后的方法。


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