popen——php多进程利器

来源:互联网 发布:安妮宝贝老公 知乎 编辑:程序博客网 时间:2024/06/01 07:19

偷笑标题有点儿夸张,

 

我(们,本来想用们的,还会去掉了)运行系统命令常常用exec,system之类的,

但是今天发现了proc_open和popen,proc_open自称比popen多一些功能,确实,proc_open有很多功能,可以与程序交互,

——但是,他是同步的,就是说一个程序没有运行结束,不能运行下一个!就没办法异步多进程了。

——但,popen是异步的

 

上代码:

pro.php

<?php$process = array();for($i=0;$i<5;$i++){echo $i.' opening ... '.chr(10);$process[$i] = popen('php '.dirname(__FILE__).'/run.php', 'r');sleep(1);}echo 'OK>>'.chr(10);sleep(3);for($i=0;$i<5;$i++){$read = fread($process[$i], 64);echo $read;pclose($process[$i]);echo $i.' closed'.chr(10);sleep(1);}

run.php

<?phpwhile(1){$echo =getmypid() .'->'. date("YmHis").chr(10);echo $echo ;system('echo '.$echo.'> logp');sleep(5);}


执行php pro.php

 

 

 

 

 

原创粉丝点击