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创建PDF中文文档
Oct 09 PHP
浏览器关闭后,能继续执行的php函数(ignore_user_abort)
Aug 01 PHP
PHP实现微信公众平台音乐点播
Mar 20 PHP
laravel 5 实现模板主题功能(续)
Mar 02 PHP
Symfony学习十分钟入门经典教程
Feb 03 PHP
PHP 生成微信红包代码简单
Mar 25 PHP
PHP获取用户访问IP地址的5种方法
May 16 PHP
php利用header函数下载各种文件
Aug 24 PHP
Yii2框架制作RESTful风格的API快速入门教程
Nov 08 PHP
yii2项目实战之restful api授权验证详解
May 20 PHP
php注册审核重点解析(数据访问)
May 23 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
Mar 30 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代码
2006/12/06 PHP
PHP判断搜索引擎蜘蛛并自动记忆到文件的代码
2012/02/04 PHP
PHP异常处理Exception类
2015/12/11 PHP
php web环境和命令行环境下查找php.ini的位置
2019/07/17 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
2020/04/27 PHP
JAVASCRIPT HashTable
2007/01/22 Javascript
chrome原生方法之数组
2011/11/30 Javascript
jquery操作select详解(取值,设置选中)
2014/02/07 Javascript
Nodejs+express+html5 实现拖拽上传
2014/08/08 NodeJs
jQuery延迟加载图片插件Lazy Load使用指南
2015/03/25 Javascript
JS实现的表格操作类详解(添加,删除,排序,上移,下移)
2015/12/22 Javascript
angular.js+node.js实现下载图片处理详解
2017/03/31 Javascript
VUEJS 2.0 子组件访问/调用父组件的实例
2018/02/10 Javascript
使用node打造自己的命令行工具方法教程
2018/03/26 Javascript
浅谈redux以及react-redux简单实现
2018/08/28 Javascript
微信小程序实现随机验证码功能
2018/12/20 Javascript
JavaScript实现文件下载并重命名代码实例
2019/12/12 Javascript
详解微信小程序(Taro)手动埋点和自动埋点的实现
2021/03/02 Javascript
python实现rest请求api示例
2014/04/22 Python
Python绘制3d螺旋曲线图实例代码
2017/12/20 Python
Python读取properties配置文件操作示例
2018/03/29 Python
Python工厂函数用法实例分析
2018/05/14 Python
Laravel框架表单验证格式化输出的方法
2019/09/25 Python
关于python 跨域处理方式详解
2020/03/28 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
pycharm配置安装autopep8自动规范代码的实现
2021/03/02 Python
HTML5 Convas APIs方法详解
2015/04/24 HTML / CSS
天巡全球:Skyscanner Global
2017/06/20 全球购物
Kivari官网:在线购买波西米亚服装
2018/10/29 全球购物
Timberland澳大利亚官网:全球领先的户外品牌
2019/12/10 全球购物
超市中秋节活动方案
2014/02/12 职场文书
单位工作证明书格式
2014/10/04 职场文书
网站出售协议书范文
2014/10/10 职场文书
护士个人年度总结范文
2015/02/13 职场文书
防卫过当辩护词
2015/05/21 职场文书
Python利用folium实现地图可视化
2021/05/23 Python