博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP多进程编程实例详解
阅读量:6071 次
发布时间:2019-06-20

本文共 1206 字,大约阅读时间需要 4 分钟。

hot3.png

本文实例讲述了PHP多进程编程。分享给大家供大家参考,具体如下:

第一步:

$ php -m  命令查看php是否安装pcntl 和 posix扩展,若没有则安装

使用场景:

1. 要进行大量的网络耗时的操作

2. 要做大量的运算,并且,系统有多个cpu,为了让用户有更快的体验,把一个任务,分成几个小任务,最后合并。

多进程常用函数:

pcntl_alarm — 为进程设置一个alarm闹钟信号

pcntl_errno — 别名 pcntl_strerror
pcntl_exec — 在当前进程空间执行指定程序
pcntl_fork — 创建子进程,在当前进程当前位置产生分支(子进程)。译注:fork是创建了一个子进程,父进程和子进程 都从fork的位置开始向下继续执行,不同的是父进程执行过程中,得到的fork返回值为子进程 号,而子进程得到的是0。
pcntl_get_last_error — Retrieve the error number set by the last pcntl function which failed
pcntl_getpriority — 获取任意进程的优先级
pcntl_setpriority — 修改任意进程的优先级
pcntl_signal_dispatch — 调用等待信号的处理器
pcntl_signal — 安装一个信号处理器
pcntl_sigprocmask — 设置或检索阻塞信号
pcntl_sigtimedwait — 带超时机制的信号等待
pcntl_sigwaitinfo — 等待信号
pcntl_strerror — Retrieve the system error message associated with the given errno
pcntl_wait — 等待或返回fork的子进程状态
pcntl_waitpid — 等待或返回fork的子进程状态
pcntl_wexitstatus — 返回一个中断的子进程的返回代码
pcntl_wifexited — 检查状态代码是否代表一个正常的退出。
pcntl_wifsignaled — 检查子进程状态码是否代表由于某个信号而中断
pcntl_wifstopped — 检查子进程当前是否已经停止
pcntl_wstopsig — 返回导致子进程停止的信号
pcntl_wtermsig — 返回导致子进程中断的信号

实例一:

实例二:开多个子进程,避免fork泛滥

注意:

通过pcntl_XXX系列函数使用多进程功能。注意:pcntl_XXX只能运行在php CLI(命令行)环境下,在web服务器环境下,会出现无法预期的结果,请慎用!

 

转载于:https://my.oschina.net/zhiqiangwang/blog/1528973

你可能感兴趣的文章
我的友情链接
查看>>
Java中的匿名内部类
查看>>
14.PL_SQL——StoreProcedures的创建和使用
查看>>
linux下清空DNS缓存
查看>>
怎么看懂oracle的执行计划
查看>>
【转】在网页中异步加载javascript
查看>>
且谈语音搜索
查看>>
以写代学:python 文件
查看>>
MySQL数据库导入导出常用命令
查看>>
Windows管理员常用的PowerShell命令
查看>>
LAMP架构搭建与优化(1.7-1.9)
查看>>
为网站加入Drupal星球制作RSS订阅源
查看>>
MySQL 存储过程 游标例子
查看>>
MySQL 性能监控4大指标——第二部分
查看>>
小程序的客服
查看>>
第十一届GPCT杯大学生程序设计大赛完美闭幕
查看>>
WPF/Silverlight Layout 系统概述——Arrange
查看>>
ITK Could not create IO object for writing file
查看>>
VS调试技巧
查看>>
基本shell命令
查看>>