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 相关文章推荐
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
Apr 07 PHP
php 上传文件类型判断函数(避免上传漏洞 )
Jun 08 PHP
php debug 安装技巧
Apr 30 PHP
php中获取指定IP的物理地址的代码(正则表达式)
Jun 23 PHP
解析mysql left( right ) join使用on与where筛选的差异
Jun 18 PHP
zf框架的校验器使用使用示例(自定义校验器和校验器链)
Mar 13 PHP
php求正负数数组中连续元素最大值示例
Apr 11 PHP
PHP判断文章里是否有图片的简单方法
Jul 26 PHP
PHP实现的常规正则验证helper公共类完整实例
Apr 27 PHP
php 字符串中是否包含指定字符串的多种方法
Apr 12 PHP
PHP实现打包zip并下载功能
Jun 12 PHP
Laravel实现ORM带条件搜索分页
Oct 24 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
追忆往昔!浅谈收音机的百年发展历史
2021/03/01 无线电
php cookie 作用范围?不要在当前页面使用你的cookie
2009/03/24 PHP
基于php-fpm 参数的深入理解
2013/06/03 PHP
解析yahoo邮件用phpmailer发送的实例
2013/06/24 PHP
让ThinkPHP支持大小写url地址访问的方法
2014/10/31 PHP
php swoole多进程/多线程用法示例【基于php7nts版】
2019/08/12 PHP
javascript操作JSON的要领总结
2012/12/09 Javascript
jquery设置控件位置的方法
2013/08/21 Javascript
JavaScript中的函数的两种定义方式和函数变量赋值
2014/05/12 Javascript
JS实现距离上次刷新已过多少秒示例
2014/05/23 Javascript
Node.js安装教程和NPM包管理器使用详解
2014/08/16 Javascript
js实现每日自动换一张图片的方法
2015/05/04 Javascript
JavaScript实现仿淘宝商品购买数量的增减效果
2016/01/22 Javascript
vue解决花括号数据绑定不成功的问题
2019/10/30 Javascript
vue 取出v-for循环中的index值实例
2019/11/09 Javascript
微信小程序新闻网站详情页实例代码
2020/01/10 Javascript
python使用三角迭代计算圆周率PI的方法
2015/03/20 Python
python optparse模块使用实例
2015/04/09 Python
Ubuntu下安装PyV8
2016/03/13 Python
python爬虫实战之爬取京东商城实例教程
2017/04/24 Python
浅谈Python中range和xrange的区别
2017/12/20 Python
python 实现将txt文件多行合并为一行并将中间的空格去掉方法
2018/12/20 Python
Python递归函数实例讲解
2019/02/27 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
动态设置django的model field的默认值操作步骤
2020/03/30 Python
django之导入并执行自定义的函数模块图解
2020/04/01 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
2020/07/02 Python
美国女孩服装购物网站:Justice
2017/03/04 全球购物
法国在线宠物店:zooplus.fr
2018/02/23 全球购物
晚会主持词开场白
2014/03/17 职场文书
80后婚前协议书范本
2014/10/24 职场文书
2014年小学工作总结
2014/11/26 职场文书
2014年污水处理厂工作总结
2014/12/19 职场文书
2014年小学美术工作总结
2014/12/20 职场文书
python 实现图与图之间的间距调整subplots_adjust
2021/05/21 Python
海贼王十大逆天果实 魂魂果实上榜,岩浆果实攻击力最强
2022/03/18 日漫