popen——php多进程利器

发布时间:2017-05-10 21:41:48 阅读:870次

http://blog.csdn.net/leinchu/article/details/8191067
偷笑标题有点儿夸张,


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

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

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

——但,popen是异步的

上代码:

pro.PHP

[php] view plain copy
 print?
  1. <?php  
  2. $process = array();  
  3. for($i=0;$i<5;$i++)  
  4. {  
  5.     echo $i.' opening ... '.chr(10);  
  6.     $process[$i] = popen('php '.dirname(__FILE__).'/run.php''r');  
  7.     sleep(1);  
  8. }  
  9.   
  10. echo 'OK>>'.chr(10);  
  11. sleep(3);  
  12. for($i=0;$i<5;$i++)  
  13. {  
  14.     $read = fread($process[$i], 64);  
  15.     echo $read;  
  16.     pclose($process[$i]);  
  17.     echo $i.' closed'.chr(10);  
  18.     sleep(1);  
  19. }  

run.php

[php] view plain copy
 print?
  1. <?php  
  2. while(1)  
  3. {  
  4.     $echo =getmypid() .'->'date("YmHis").chr(10);  
  5.     echo $echo ;  
  6.     system('echo '.$echo.'> logp');  
  7.     sleep(5);  
  8. }  

执行php pro.php


如有问题,可以QQ搜索群1028468525加入群聊,欢迎一起研究技术

支付宝 微信

有疑问联系站长,请联系QQ:QQ咨询
上一篇:php多线程fork
下一篇:mac .zshrc

转载请注明: popen——php多进程利器 出自老鄢博客 | 欢迎分享