Rumah >tajuk utama > 微博 Qzone 微信 pcntl_fork实现PHP多进程

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

小云云
小云云asal
2017-11-03 13:57:331964semak imbas

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


Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:学习PHP之思路分享一Artikel seterusnya:学php出来好找工作么?