示例解释php实现多线程
我们先来看一个例子
?php类exec multi { function multi threadtest { exec(' PHP static _ massive . PHP/dev/null ');回声“处理完成”;}}?当执行上述操作时,即使在耗时的处理结束之前,也显示处理已经完成。
exec(' PHP static _ massive . PHP/dev/null ');由于“/dev/null&”返回的值丢失,我们不会等待响应。
因此,处理完成指示比耗时的处理更快。
然而,这种方法不知道耗时的处理何时结束。
不要忘记考虑使用日志执行、登录DB等方法将执行结果交付给用户。
多线程方法(pthreads)
最后介绍了使用PHP扩展模块pthreads的方法。
它可以比使用上面的exec更简单。
配置环境,安装php
请用流浪和其他来准备你喜欢的环境。
Php需要使用线程安全版本,这是多线程和安全性的实现。
从官方下载PHP的线程安全版本。
访问以下内容,并从图中的红色框中下载。
http://www.php.net/downloads.php
此外,对于线程安全安装,您需要使用配置选项指定-enable-maintainer-zts。/configure-enable-maintainer-zts您还可以根据需要安装Apache和mysql选项。
只需用下面的命令确认php的版本。
安装php -vpthreads
让我们下载zip格式。
https://github.com/krakjoe/pthreads/archive/master.zip
解压缩zip,移动到解压缩的文件,然后执行phpize。
如果在PHP模块列表上运行pthreads,可以执行以下操作。
根据不同的环境,php -m有不同的设置。可以使用环境名pthreads来搜索信息。
尽量使用多线程
例子如下
?phpclass pthreadsTest扩展Thread { public function run(){ sleep(5);}}$ts1=新的pthreadtest();$ ts1-start();$ts2=新的pthreadtest();$ ts2-start();因为sleep(5)叫两次,需要10秒,但实际上会是5秒。
版权声明:示例解释php实现多线程是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。