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

Linux下实现PHP多进程的方法分享

程序员文章站 2022-09-10 18:07:53
php多进程:使用php的process control functions(pcntl/线程控制函数) 函数参考可见: 只能用在unix like os,windows不...
php多进程:使用php的process control functions(pcntl/线程控制函数)
函数参考可见:
只能用在unix like os,windows不可用。
编译php的时候,需要加上–enable-pcntl,且推荐仅仅在cli模式运行,不要在web服务器环境运行。

以下为实现php多进程的简单测试代码:
复制代码 代码如下:

<?php
declare(ticks=1);
$bwaitflag = false; /// 是否等待进程结束
$intnum = 10; /// 进程总数
$pids = array(); /// 进程pid数组

echo ("start\n");

for($i = 0; $i < $intnum; $i++) {

$pids[$i] = pcntl_fork();/// 产生子进程,而且从当前行之下开试运行代码,而且不继承父进程的数据信息

if(!$pids[$i]) {
// 子进程进程代码段_start
$str="";
sleep(5+$i);
for ($j=0;$j<$i;$j++) {$str.="*";}
echo "$i -> " . time() . " $str \n";
exit();
// 子进程进程代码段_end
}

}
if ($bwaitflag)
{
for($i = 0; $i < $intnum; $i++) {
pcntl_waitpid($pids[$i], $status, wuntraced);
echo "wait $i -> " . time() . "\n";
}
}
echo ("end\n");
?>