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和ACCESS写聊天室(一)
Oct 09 PHP
SSI指令
Nov 25 PHP
15种PHP Encoder的比较
Mar 06 PHP
PHP版国家代码、缩写查询函数代码
Aug 14 PHP
探讨:使用XMLSerialize 序列化与反序列化
Jun 08 PHP
使用php测试硬盘写入速度示例
Jan 27 PHP
回帖脱衣服的图片实现代码
Feb 15 PHP
php多重接口的实现方法
Jun 20 PHP
php用正则判断是否为数字的方法
Mar 25 PHP
PHP实现的线索二叉树及二叉树遍历方法详解
Apr 25 PHP
CodeIgniter 完美解决URL含有中文字符串
May 13 PHP
如何用PHP做到页面注册审核
Mar 02 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过滤所有的空白字符(空格、全角空格、换行等)
2015/10/27 PHP
ThinkPHP3.2.1图片验证码实现方法
2016/08/19 PHP
phpMyAdmin通过密码漏洞留后门文件
2018/11/20 PHP
JavaScript去除空格的几种方法
2006/10/03 Javascript
XMLHTTPRequest的属性和方法简介
2010/11/23 Javascript
jquery 操作DOM的基本用法分享
2012/04/05 Javascript
js数组操作学习总结
2013/11/04 Javascript
js判断字符是否是汉字的两种方法小结
2014/01/03 Javascript
JS实现跟随鼠标的链接文字提示框效果
2015/08/06 Javascript
js日期相关函数dateAdd,dateDiff,dateFormat等介绍
2016/09/24 Javascript
node.js版本管理工具n无效的原理和解决方法
2016/11/24 Javascript
收藏AngularJS中最重要的核心功能
2017/07/09 Javascript
Angularjs 1.3 中的$parse实例代码
2017/09/14 Javascript
Vue中的字符串模板的使用
2018/05/17 Javascript
Taro集成Redux快速上手的方法示例
2018/06/21 Javascript
开发用到的js封装方法(20种)
2018/10/12 Javascript
ES6中定义类和对象的方法示例
2019/07/31 Javascript
原生js实现碰撞检测
2020/03/12 Javascript
解决vue-pdf查看pdf文件及打印乱码的问题
2020/11/04 Javascript
Python中动态获取对象的属性和方法的教程
2015/04/09 Python
python实现12306抢票及自动邮件发送提醒付款功能
2018/03/08 Python
Python WSGI的深入理解
2018/08/01 Python
Python绘制正余弦函数图像的方法
2018/08/28 Python
Python rstrip()方法实例详解
2018/11/11 Python
基于Tensorflow:CPU性能分析
2020/02/10 Python
Python Serial串口基本操作(收发数据)
2020/11/06 Python
CSS3转换功能transform主要属性值分析及实现分享
2012/05/06 HTML / CSS
Oasis服装官网:时尚女装在线
2020/07/09 全球购物
Agoda中文官网:安可达(低价预订全球酒店)
2021/01/18 全球购物
保护环境建议书
2014/03/12 职场文书
法人委托书范本
2014/04/04 职场文书
1亿有多大教学反思
2014/05/01 职场文书
服装仓管员岗位职责
2014/06/17 职场文书
质量保证书怎么写
2015/02/27 职场文书
2015年检验科工作总结
2015/04/27 职场文书
浅谈spring boot使用thymeleaf版本的问题
2021/08/04 Java/Android