Linux下实现PHP多进程的方法分享_PHP教程
程序员文章站
2022-05-03 12:59:08
...
PHP多进程:使用PHP的Process Control Functions(PCNTL/线程控制函数)
函数参考可见:http://www.php.net/manual/zh/ref.pcntl.php
只能用在Unix Like OS,Windows不可用。
编译php的时候,需要加上–enable-pcntl,且推荐仅仅在CLI模式运行,不要在WEB服务器环境运行。
以下为实现PHP多进程的简单测试代码:
declare(ticks=1);
$bWaitFlag = FALSE; /// 是否等待进程结束
$intNum = 10; /// 进程总数
$pids = array(); /// 进程PID数组
echo ("Start\n");
for($i = 0; $i
$pids[$i] = pcntl_fork();/// 产生子进程,而且从当前行之下开试运行代码,而且不继承父进程的数据信息
if(!$pids[$i]) {
// 子进程进程代码段_Start
$str="";
sleep(5+$i);
for ($j=0;$jecho "$i -> " . time() . " $str \n";
exit();
// 子进程进程代码段_End
}
}
if ($bWaitFlag)
{
for($i = 0; $i pcntl_waitpid($pids[$i], $status, WUNTRACED);
echo "wait $i -> " . time() . "\n";
}
}
echo ("End\n");
?>
函数参考可见:http://www.php.net/manual/zh/ref.pcntl.php
只能用在Unix Like OS,Windows不可用。
编译php的时候,需要加上–enable-pcntl,且推荐仅仅在CLI模式运行,不要在WEB服务器环境运行。
以下为实现PHP多进程的简单测试代码:
复制代码 代码如下:
declare(ticks=1);
$bWaitFlag = FALSE; /// 是否等待进程结束
$intNum = 10; /// 进程总数
$pids = array(); /// 进程PID数组
echo ("Start\n");
for($i = 0; $i
$pids[$i] = pcntl_fork();/// 产生子进程,而且从当前行之下开试运行代码,而且不继承父进程的数据信息
if(!$pids[$i]) {
// 子进程进程代码段_Start
$str="";
sleep(5+$i);
for ($j=0;$jecho "$i -> " . time() . " $str \n";
exit();
// 子进程进程代码段_End
}
}
if ($bWaitFlag)
{
for($i = 0; $i pcntl_waitpid($pids[$i], $status, WUNTRACED);
echo "wait $i -> " . time() . "\n";
}
}
echo ("End\n");
?>
推荐阅读
-
Linux下实现PHP多进程的方法分享
-
PHP接口多继承和tarits实现多继承效果的方法教程详情
-
PHP在Linux下连接MSSQLServer的配置方法简述(二、FreeTDS库)_PHP教程
-
PHP在Linux下连接MSSQLServer的配置方法简述(一、Sybase库)_PHP教程
-
Linux下实现PHP多进程的方法分享_PHP教程
-
PHP下escape解码函数的实现方法_PHP教程
-
php计划任务的实现方法,支持windows/linux下运行
-
Linux环境下php实现给网站截图的方法,linuxphp_PHP教程
-
php计划任务的实现方法,支持windows/linux下运行
-
Zend Framework实现多服务器共享SESSION数据的方法,zendsession_PHP教程