手机版

示例解释php实现多线程

时间:2021-08-27 来源:互联网 编辑:宝哥软件园 浏览:

我们先来看一个例子

?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或者邮箱删除。