PHP7多线程搭建教程


Posted in PHP onApril 21, 2017

一直想写个爬虫,于是就用PHP写了一个,众所周知PHP并不支持多线程,所以爬行效率很低,同时运行10个进程,内存和CPU占用率很高,开大概10个进程爬行,对爬行时间还进行优化,但我的mac pro还是差不多就down掉了。 于是开始采用PHP7结合pthreads多线程工具,经测试,稳定性、效率、内存和cpu的占用各方面都很满意。 下边就介绍PHP7的多线程环境搭建。

安装PHP7

以下所有命令在root用户下执行 下载PHP7,目前最新版本是7.0.3,根据情况自行选择版本,PHP5.4以后的各版本也是支持的。

wget http://ar2.php.net/get/php-7.0.3.tar.gz/from/this/mirror -O php.tar.gz
tar xvfz php.tar.gz
cd php

编译安装。

选项自行选择,可以让PHP多版本共存。但maintainer-zts是必须的,如果只做爬虫,除了curl,其它扩展基本不用安装。遇到无法安装的自行查找解决,例如我安装的时候遇到iconv没有找到,那直接就without了。

./configure --prefix=/usr/local/php7 --without-iconv --enable-maintainer-zts --with-curl
make
make install

安装完成

然后开始安装pthreads。用pecl安装是超级简单的。

cd /usr/local/php7/bin
./pecl install pthreads

安装完成

配置文件

在/usr/local/php7/lib/目录下新建php.ini文件,初始文件可在php源码的根目录找到php.ini-production 然后编辑php.ini,在末尾增加

extension="pthreads.so"

安装完成

查看安装是否成功

运行

/usr/local/php7/bin/php -m

查看模块支持列表,如果有pthreads存在则说明环境创建成功。 或者编辑文件test.php

<?php
$thread = new class extends Thread { 
  public function run() { 
    echo "Hello World\n";
  }
};
$thread->start() && $thread->join();
?>

成功输出Hello World说明成功。

以上所述是小编给大家介绍的PHP7多线程搭建教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
PHP MSSQL 存储过程的方法
Dec 24 PHP
php 获取可变函数参数的函数
Aug 26 PHP
Linux中用PHP判断程序运行状态的2个方法
May 04 PHP
一个简单的PHP验证码实现代码
May 10 PHP
php获取指定日期之间的各个周和月的起止时间
Nov 24 PHP
PHP简单选择排序算法实例
Jan 26 PHP
PHP实现简单实用的验证码类
Jul 29 PHP
PHP自定义函数格式化json数据示例
Sep 14 PHP
Laravel框架搜索分页功能示例
Feb 01 PHP
TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例
May 29 PHP
PHP7 windows支持
Mar 09 PHP
php TP5框架生成二维码链接
Apr 01 PHP
mac系统下安装多个php并自由切换的方法详解
Apr 21 #PHP
php获取excel文件数据
Apr 21 #PHP
PHP实现限制IP访问的方法
Apr 20 #PHP
PHP简单读取xml文件的方法示例
Apr 20 #PHP
PHP编程获取音频文件时长的方法【基于getid3类】
Apr 20 #PHP
PHP实现根据数组的值进行分组的方法
Apr 20 #PHP
PHP实现在数据库百万条数据中随机获取20条记录的方法
Apr 19 #PHP
You might like
php 异常处理实现代码
2009/03/10 PHP
PHP调用JAVA的WebService简单实例
2014/03/11 PHP
php一维二维数组键排序方法实例总结
2014/11/13 PHP
PHP面向对象编程之深入理解方法重载与方法覆盖(多态)
2015/12/24 PHP
详解WordPress中调用评论模板和循环输出评论的PHP函数
2016/01/05 PHP
浅谈mysql_query()函数的返回值问题
2016/09/05 PHP
php 修改上传文件大小限制实例详解
2016/10/23 PHP
ThinkPHP中类的构造函数_construct()与_initialize()的区别详解
2017/03/13 PHP
PDO::getAttribute讲解
2019/01/28 PHP
基于jquery &amp; json的省市区联动代码
2012/06/26 Javascript
js借助ActiveXObject实现创建文件
2013/09/29 Javascript
jquery中ajax函数执行顺序问题之如何设置同步
2014/02/28 Javascript
JQuery动态添加和删除表格行的方法
2015/03/09 Javascript
使用JQuery实现智能表单验证功能
2016/03/08 Javascript
深入浅析JavaScript中的scrollTop
2016/07/11 Javascript
微信小程序 icon组件详细及实例代码
2016/10/25 Javascript
深究AngularJS如何获取input的焦点(自定义指令)
2017/06/12 Javascript
JavaScript基础进阶之数组方法总结(推荐)
2017/09/04 Javascript
全站最详细的Vuex教程
2018/04/13 Javascript
微信小程序自定义多选事件的实现代码
2018/05/17 Javascript
jquery选择器和属性对象的操作实例分析
2020/01/10 jQuery
ant design vue导航菜单与路由配置操作
2020/10/28 Javascript
[55:45]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.24
2019/09/10 DOTA
在Python的web框架中编写创建日志的程序的教程
2015/04/30 Python
python实时分析日志的一个小脚本分享
2017/05/07 Python
使用python PIL库实现简单验证码的去噪方法步骤
2019/05/10 Python
基于sklearn实现Bagging算法(python)
2019/07/11 Python
Python一键安装全部依赖包的方法
2019/08/12 Python
在ipython notebook中使用argparse方式
2020/04/20 Python
Pandas中两个dataframe的交集和差集的示例代码
2020/12/13 Python
挪威太阳镜和眼镜网上商城:SmartBuyGlasses挪威
2016/08/20 全球购物
英国最大的独立玩具专卖店:The Entertainer
2019/09/06 全球购物
学党史心得体会
2014/09/05 职场文书
无违反计划生育证明格式
2015/06/24 职场文书
2016五四青年节活动总结范文
2016/04/06 职场文书
用PYTHON去计算88键钢琴的琴键频率和音高
2022/04/10 Python