后端开发|PHP问题
php,多进程
后端开发-PHP问题
唧唧帝源码,vscode c 求和,ubuntu 宝塔,tomcat lib 路径,sqlite3管理,web插件源码下载,前端实现在线word框架,和爬虫有关的节日,php 解析js,seo网络推广专业,菠菜网站源代码,ajax网页聊天,织梦专题单页面模板下载lzw
贴吧源码下载,.vscode文件夹在哪里打开,ubuntu 快捷启动,jar 包运行在tomcat上,sqlite 查询所有,网页设计字体用什么软件,服务器搭建虚拟主机,dedecms 图集插件,java前端框架boots,python爬虫项目实例,php数组增加,怎么给网站做seo,网站模板下载后如何使用,网页星空代码,织梦大气模板,日历手机页面,分销管理系统免费版,易语言图片插入程序lzw
php多进程需要pcntl,posix扩展支持。
html仿微信聊天源码,ubuntu的退出命令,爬虫传递请求负载,PHP内部,本站seo好吗lzw
多进程实现只能在cli模式下,在web服务器环境下,会出现无法预期的结果。
(推荐视频教学:php视频教学)
多进程核心函数:
pcntl_fork(创建子进程)、pcntl_wait(阻塞当前进程)
详细介绍:
pcntl_fork:
一次调用两次返回,在父进程中返回子进程pid,在子进程中返回0,出错返回-1。
pcntl_wait ( int &$status [, int $options ] ):
阻塞当前进程,直到任意一个子进程退出或收到一个结束当前进程的信号,注意是结束当前进程的信号,子进程结束发送的SIGCHLD不算。使用$status返回子进程的状态码,并可以指定第二个参数来说明是否以阻塞状态调用
阻塞方式调用的,函数返回值为子进程的pid,如果没有子进程返回值为-1;
非阻塞方式调用,函数还可以在有子进程在运行但没有结束的子进程时返回0。
pcntl_waitpid ( int $pid , int &$status [, int $options ] )
功能同pcntl_wait,区别为waitpid为等待指定pid的子进程。当pid为-1时pcntl_waitpid与pcntl_wait 一样。在pcntl_wait和pcntl_waitpid两个函数中的$status中存了子进程的状态信息。
(相关教学推荐:php图文教学)
举例:
php中一个始终保持固定个数的子进程在跑。
根据需求使用pcntl_fork(创建子进程)、pcntl_wait(阻塞当前进程)等核心函数
代码实现:
= $maxChildPro) { pcntl_wait($status); } } else {//子进程运行代码 $s = rand(2, 6); sleep($s); echo "child sleep $s second quit", PHP_EOL; exit; }}