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

yipeiwu_com7年前PHP代码库
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多进程的简单测试代码:
复制代码 代码如下:

<?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");
?>

相关文章

常见PHP数据库解决方案分析介绍

常见PHP数据库解决方案分析介绍

我们在使用PHP连接数据库的时候会遇到很多问题,文章这里揭露PHP应用程序中出现的常见数据库问题 —— 包括数据库模式设计、数据库访问和使用数据库的业务逻辑代码 —— 以及它们的解决方案...

在PHP中PDO解决中文乱码问题的一些补充

在PHP中PDO解决中文乱码问题的一些补充

我的环境是appsver包, 在网上最常出现的解决中文乱码显示的代码是: 第一种:PDO::__construct($dsn, $user, $pass, array (PDO::MYS...

10个简化PHP开发的工具

10个简化PHP开发的工具

本文介绍了可以帮助简化 PHP 开发的10个项目,包括框架,类库,工具,代码。 1.CakePHP Development Framework CakePHP 是一个 PHP 的快速开...

php 文件夹删除、php清除缓存程序

复制代码 代码如下: <?php header('content-type:text/html;charset=utf-8'); function delFile($fpath)...

PHP 如何利用phpexcel导入数据库

废话不多说,直接上代码吧复制代码 代码如下:<?php error_reporting(E_ALL); //开启错误 set_time_limit(0); //脚本不超时 date...