PHP多线程

简介: 1、扩展下载链接:https://windows.php.net/downloads/pecl/releases/pthreads2、php扩展安装:pthreadsa)注意事项: i.Php必须是线程安全的版本(TS),可以在phpinfo中查看

1、扩展下载链接


https://windows.php.net/downloads/pecl/releases/pthreads


2、php扩展安装:pthreads


a)注意事项:
    i.Php必须是线程安全的版本(TS),可以在phpinfo中查看
复制代码


网络异常,图片无法展示
|


ii.查看php版本:
复制代码


网络异常,图片无法展示
|


iii.查看php编译器版本:
复制代码


网络异常,图片无法展示
|


iv.查看php软件的位数
复制代码


网络异常,图片无法展示
|


v.Php配置文件的路径
复制代码


网络异常,图片无法展示
|


b)在上方链接中下载与你本地php环境相符合的扩展
复制代码


网络异常,图片无法展示
|


i.5.5代表php的版本
    ii.Ts代表线程安全
    iii.Vc11代表编译器版本
    iv.X86代表php是32位的
c)下载完成,打开压缩包找到两个文件
    i.php_pthreads.dll
    ii.pthreadVC2.dll
d)将php_pthreads.dll放入当前php的扩展目录中ext
复制代码


网络异常,图片无法展示
|


e)将pthreadVC2.dll放入php的根目录
复制代码


网络异常,图片无法展示
|

f)将pthreadVC2.dll放入apache的bin目录
复制代码


网络异常,图片无法展示
|

g)将pthreadVC2.dll放入C:/windows/system32/目录下
复制代码


网络异常,图片无法展示
|

h)修改php.ini文件,新增extension=php_pthreads.dll 至末尾
i)重启环境,重新打开phpinfo查看pthreads扩展是否安装成功
复制代码


网络异常,图片无法展示
|

j)如果没有安装成功,严格执行以上流程,再来一次
复制代码


3、实践体验php多线程的魅力


a)安装扩展后,php就可以使用Thread类,用于实现多线程操作,并包含以下方法
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


b)我们用more_threads来继承Thread类
c)实现其中的run方法
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


d)使用单线程与多线程两种方法请求采集网站
    i.多线程
复制代码


网络异常,图片无法展示
|


ii.单线程
复制代码


网络异常,图片无法展示
|


e)执行代码
复制代码


网络异常,图片无法展示
|


f)输出结果
复制代码


网络异常,图片无法展示
|


g)我们可以看到多线程比单线程提升了16倍速度,随着请求数量越大,提升就越大,多线程可以始终保持在5秒左右,但是需要考虑内存空间
复制代码


4、应用场景


a)I/O 文件操作,耗时较长
b)多个网络请求可能因为网络请求或延迟等问题,耗时长
c)大数据的分析处理,需要长时间操作
d)群发邮件,使用多线程可以大大的提高发送速度


相关文章
|
安全 PHP
如何使用PHP实现多线程操作?
如何使用PHP实现多线程操作?
292 0
|
PHP 调度
浅谈 实现php多线程
浅谈 实现php多线程
|
安全 PHP
php不支持多线程怎么办
PHP 默认并不支持多线程,要使用多线程需要安装 pthread 扩展,而要安装 pthread 扩展,必须使用 --enable-maintainer-zts 参数重新编译 PHP,这个参数是指定编译 PHP 时使用线程安全方式。
857 0
|
移动开发 Java PHP
|
PHP 移动开发
php多线程thread开发与应用的例子
Php多线程的使用,首先需要PHP5.3以上版本,并安装pthreads PHP扩展,可以使PHP真正的支持多线程,扩展如何安装请自行百度 PHP扩展下载:https://github.com/krakjoe/pthreads PHP手册文档:http://php.
1213 0
|
PHP 移动开发 机器学习/深度学习
PHP多线程的实现方法详解
多线程是java中一个很不错的东西,很多朋友说在php中不可以使用PHP多线程了,其实那是错误的说法PHP多线程实现方法和fsockopen函数有关,下面我们来介绍具体实现程序代码,有需要了解的同学可参考。 当有人想要实现并发功能时,他们通常会想到用fork或者spawn threads,但是当他们发现php不支持多线程的时候,大概会转换思路去用一些不够好的语言,比如perl。 其
1385 0
|
PHP
php实现多线程
php实现多线程 感谢 3lian8 的投递 时间:2014-01-21 来源:三联教程   有没有办法在php中实现多线程呢?假设你正在写一个基于多台服务器的php应用,理想的情况时同时向多台服务器发送请求,而不是一台接一台。
929 0