深入解析PHP中的(伪)多线程与多进程(2)

[文章二] 尝试php命令行脚本多进程并发执行
除了fork, cli下的并发方式还有一种,看我的例子:
php不支持多线程,但是我们可以把问题转换成“多进程”来解决。由于php中的pcntl_fork只有unix平台才可以使用,所以本文尝试使用popen来替代。
下面是一个例子:
被并行调用的子程序代码:

复制代码 代码如下:


<?php
if($argc==1){
&nbsp;&nbsp;&nbsp; echo("argv\n");
}
$arg = $argv[1];
for($i=0; $i<10; $i++)
{
&nbsp;&nbsp;&nbsp; echo($i.".1.".time()." exec $arg \n");
&nbsp;&nbsp;&nbsp; if($arg=='php2'){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sleep(1);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo($i.".2.".time()." exec $arg \n");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sleep(1);
&nbsp;&nbsp;&nbsp; }else{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sleep(1);
&nbsp;&nbsp;&nbsp; }
}
?>


主调用者程序,由他调用子进程,同时并发的收集子程序的输出

复制代码 代码如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/6c978e2914925a98f27682e9fe9d247a.html