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)群发邮件,使用多线程可以大大的提高发送速度