实例讲解php实现多线程
发布:smiling 来源: PHP粉丝网 添加日期:2021-11-06 18:34:59 浏览: 评论:0
在本篇文章里小编给大家分享了关于php实现多线程的相关知识点以及实例内容,以后兴趣的朋友们学习下。
我们首先来看一个示例
- <?php
 - class execMulti {
 - function MultithreadTest {
 - exec("php static_massive.php > /dev/null &");
 - echo "处理完成了";
 - }
 - }
 - ?>
 
当执行上述操作时,即使在耗时的处理结束之前也显示处理完成。
exec("php static_massive.php > /dev/null &");
由于“ > / dev / null& ”返回的值丢失,我们不会等待响应。
因此,处理完成指示比耗时处理更快。
但是,该方法不知道耗时的处理何时结束。
不要忘记考虑采取日志的执行,登录DB等方法向用户传递执行结果。
用于多线程的方法(pthreads)
最后,介绍使用PHP扩展模块pthreads的方法。
它可以比上面使用exec的方法更简单。
①配置环境并安装php
请使用vagrant等准备喜欢的环境。
php 需要使用线程安全版本,这是多线程和安全的实现。
从官方下载线程安全版本的 PHP。
访问以下内容并从图中的红框下载。
http://www.php.net/downloads.php
此外,对于线程安全安装,您需要使用configure选项指定-enable-maintainer-zts。
./configure --enable-maintainer-zts
根据需要,也可以安上Apache和mysql的选项。
用以下命令确认了php的版本就可以了。
php -v
②pthreads的安装
我们来下载zip格式。
https://github.com/krakjoe/pthreads/archive/master.zip
解压zip,移动到解压缩文件,然后执行phpize。
如果您在PHP模块列表上运行pthreads,则可以执行以下操作。
php -m
根据环境的不同,这一块的设定也会有所不同,可以用环境名+pthreads等进行检索来寻找信息。
③尝试使用多线程
示例如下:
- <?php
 - class pthreadsTest extends Thread {
 - public function run () {
 - sleep(5);
 - }
 - }
 - $ts1 = new pthreadsTest();
 - $ts1->start();
 - $ts2 = new pthreadsTest();
 - $ts2->start();
 - ?>
 
因为sleep(5)被调用两次,所以需要10秒,但实际上它将是5秒。
Tags: php多线程
相关文章
- ·php多线程thread开发与应用的例子(2014-06-25)
 - ·PHP多线程(pthreads)与自动加载BUG问题(2014-08-27)
 - ·php多线程抓取信息测试例子(2014-08-27)
 - ·PHP多线程的实现方法详解(2014-08-27)
 - ·PHP中实现异步调用多线程程序代码(2014-08-28)
 - ·php多线程的几点思考(2015-04-08)
 - ·php基于Socket实现多线程开发教程(2015-04-15)
 - ·PHP多线程pthreads使用例子(2015-12-24)
 - ·php curl_multi 多线程查询的例子(2018-09-16)
 - ·php多线程并发是怎么实现的(2018-09-18)
 - ·php多线程是什么意思(2020-02-03)
 - ·php fsockopen解决办法 php实现多线程(2020-08-28)
 - ·使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)(2020-11-27)
 - ·PHP多线程编程之管道通信实例分析(2021-05-15)
 - ·PHP多线程之内部多线程实例分析(2021-05-15)
 - ·如何解决PHP无法实现多线程的问题(2021-06-19)
 
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
 - PHP新手上路(一)(7)
 - 惹恼程序员的十件事(5)
 - PHP邮件发送例子,已测试成功(5)
 - 致初学者:PHP比ASP优秀的七个理由(4)
 - PHP会被淘汰吗?(4)
 - PHP新手上路(四)(4)
 - 如何去学习PHP?(2)
 - 简单入门级php分页代码(2)
 - php中邮箱email 电话等格式的验证(2)
 
