php本身是不支持多进程的,但是在运行程序时可能需要有多进程的程序进行运算和执行。
php主要的运行方式有两种,一种是在apache下以模块的形式运行,还有一种就是直接可以命令行的cgi的形式下运行。针对这两种情况,可以写出对应的多进程程序。
1.利用apache的进程,来实现php的多进程运算。这里可以用pcntl_fork来产生子进程程序。
简单的测试程序:
<?php
/**
* 是否对子进程进行监控
*/
$bWaitFlag = false;
/**
* 设定进程数量
*/
$intNum = 3;
/**
* 存取生成进程的数组
*/
$pids = array();
//主进程循环生成子进程
for($i = 0; $i < $intNum; $i++) {
// 产生子进程,而且从当前行之下开试运行代码
$pids[$i] = pcntl_fork();
//子进程程序_begin
if(!$pids[$i]) {
//进程调用服务器的页面,进行对叽歪进行数据抓取。
echo "http://www./test.php?page=".$i*10;
fopen("http://www./test.php?page=".$i*10,'r');
//进程程序停止。
exit();
// 子进程进程代码段_End
}
}
?>
这只是个简单的测试程序。
2.通过命令行的形式产生进程。
直接通过php的exec来进行调用和执行php页面。
下面也是一个测试程序:
<?php
for($i = 1; $i < 10;$i++)
{
$file_name = 'php /workspace/get_html.php > /dev/null &' ;
exec($file_name);
}
?>
|