教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 PHP服务器端异步执行方法解析

PHP服务器端异步执行方法解析

发布时间:2017-10-14   编辑:jiaochengji.com
介绍下php在服务器端实现异步执行的思路与方法,有研究php异步执行的朋友,可以做个参考。

一个项目要需要当用一登录网站首页,就要得到用户以前的一些相关数据,由于这些数据很大所以要很常时间才能完全得到。

但是PHP是顺序执行的,只有当前面的就句执行完成了才会向下执行,如此,用户就要等很长的时间。

于是便考虑要让PHP异步执行。由于是WAP网站开发所以不能用AJAX和IFRAME等技术,所以只能用户服务器端技术,首先写一个C程序让他启动一个进程,让这个子进程去执行一个PHP文件。而让主进程很快的返回。

本想这样就能骗过PHP的(exec ,system)函数,在页面上一试让我感到不解的是PHP还是在等待那个C程序的完全执行完,也就是说等待那个C程序的子进程也结束了。

后来试了下popen函数,结果真的不在等待了,它只等待主进程结束就所回一个流。
然后,在关闭这个流就可以了,而这时子进程还在执行。

查看PHP的源码才发现,在PHP中所有的exec,system,shell_exec等函数在系统C级都是用C语言的。

popen函数来执行传给他们的命令的。

它打开一个进程流,并在所以进程执行完成后。
在关闭这个进程流,所以那些函数会有一个等待和关流的过程所以会很慢。
而PHP的popen函数会执行C程序的POPEN函数,并返回一个进程流。所以它不会去等待。

以上就是有关php在服务器端异步执行的思路与具体实现过程,希望对大家有所帮助。

您可能感兴趣的文章:
PHP服务器端异步执行方法解析
php 伪异步执行实现方法
apache与php的关系
php怎么处理高并发问题?
PHP异步执行模拟多线程的方法
四种PHP异步执行的常用方式
PHP异步执行实例解析
PHP异步调用socket与php异步执行实例
php能做分布式吗
php如何解决高并发问题?

关键词: php异步请求  异步  异步请求  异步执行   
[关闭]
~ ~