PHP7多线程搭建教程

 更新时间:2017年04月21日 10:39:15   投稿:mrr  
这篇文章主要介绍了PHP7多线程搭建教程,需要的朋友可以参考下

一直想写个爬虫,于是就用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使用cookie实现记住登录状态

    php使用cookie实现记住登录状态

    这篇文章主要介绍了php使用cookie实现记住登录状态,本文用最原始的方法讲解如何实现记住登录状态,给出3个步骤和具体实现代码,需要的朋友可以参考下
    2015-04-04
  • laravel框架实现后台登录、退出功能示例

    laravel框架实现后台登录、退出功能示例

    这篇文章主要介绍了laravel框架实现后台登录、退出功能,结合实例形式详细分析了Laravel框架后台登录、退出相关的请求发送、验证、session读写与删除等相关操作技巧,需要的朋友可以参考下
    2019-10-10
  • php jquery 多文件上传简单实例

    php jquery 多文件上传简单实例

    这篇文章主要介绍了php jquery 多文件上传简单实例,有需要的朋友可以参考一下
    2013-12-12
  • php web环境和命令行环境下查找php.ini的位置

    php web环境和命令行环境下查找php.ini的位置

    这篇文章主要介绍了php web环境和命令行环境下如何查找php.ini的位置,需要的朋友可以参考下
    2019-07-07
  • Zend Framework教程之Zend_Db_Table表关联实例详解

    Zend Framework教程之Zend_Db_Table表关联实例详解

    这篇文章主要介绍了Zend Framework教程之Zend_Db_Table表关联用法,结合实例形式较为详细的分析了Zend_Db_Table表关联的定义,实现方法与相关注意事项,需要的朋友可以参考下
    2016-03-03
  • php 伪静态之IIS篇

    php 伪静态之IIS篇

    上篇文章我们讲解了APACHE服务器下伪静态的实现,不过在国内还是IIS的服务器要多些,特别是个人站长,那么,我们再来学习下IIS下php伪静态的实现过程吧
    2014-06-06
  • 使用CodeIgniter的类库做图片上传

    使用CodeIgniter的类库做图片上传

    CodeIgniter的文件上传类允许文件被上传。您可以设置指定上传某类型的文件及指定大小的文件。这篇文章主要介绍了使用CodeIgniter的类库做图片上传,需要的朋友可以参考下
    2014-06-06
  • 落伍首发 php+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码

    落伍首发 php+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码

    落伍首发 php+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码...
    2006-12-12
  • phpstudy2020搭建站点的实现示例

    phpstudy2020搭建站点的实现示例

    这篇文章主要介绍了phpstudy2020搭建站点的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • 深入了解PHP中的Array数组和foreach

    深入了解PHP中的Array数组和foreach

    下面小编就为大家带来一篇深入了解PHP中的Array数组和foreach。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11

最新评论