PHP开启popen多进程详解

PHP编程中,由于代码处理的数据量太大,单个进程处理需要很长的时间,所以需要用到并发进行处理。

popen命令说明:打开一个指向进程的管道,该进程由派生指定的 command 命令执行而产生。

使用popen结合SHELL命令也可以实现多进程并发编程。

下面开始代码实现,文件a.php:

<?php

for ($i=0;$i<10;$i++){

file_put_contents('./t.txt',$i,FILE_APPEND);

sleep(1);

}

?>

程序b.php:

<?php

echo "start curl\n";

//popen函数,参数1执行php命令(PHP的路径 需要执行的php命令文件或其他shell命令),参数2以只读方式执行命令

$out = popen("/usr/local/bin/php ./a.php", "r");

echo "test\n";

pclose($out);

echo "end curl\n";

?>

运行b.php:

屏幕快照 2016-05-11 下午4.50.02

我们发现test立即被输出,而a.php仍然在执行中。

屏幕快照 2016-05-11 下午4.50.16

10秒后,a.php执行完毕,整个程序执行结束。t.text文件中,已被写入内容。

在网站开发中,可以先行输出html部分,等待程序加载完成,发送ajax请求,再去运行一些额外代码,或获取数据,当然,js安全性,也希望每个开发人员认真考虑,适合自己的代码才是好代码。

文章来源:PHPthinking,请勿转载,谢谢合作!

 

打赏此文

如果您觉得本站的内容对您有所帮助,您可以扫描下面的二维码小额支付请我喝杯茶,感谢!打赏记录
支付宝
微信
承诺:凡打赏捐助的朋友,留言备注自己的邮箱,在打赏捐助时间点的6个月内,本站会每周邮件推送原创专业技术博文,供大家学习和参考!

留下评论

All fields marked (*) are required