pthreads多线程数据采集

以前使用curl的多线程并不是真正的多线程,只是一种模拟的多线程,现在使用pthreads来实现真正意义上的多线程。

下载:

  windows下:

    http://windows.php.net/downloads/pecl/releases/pthreads/0.0.45/

  mac、unix、linux下:

    https://github.com/krakjoe/pthreads

安装方式:

  windows下:

    解压得到pthreadVC2.dll和php_pthreads.dll文件,把vc2文件放到php.exe同级目录,把php_pthreads.dll放到扩展目录下。

    修改php.ini文件 添加extension=php_pthreads.dll

    修改Apache配置文件httpd.conf 添加LoadFile "yourpath/php/pthreadVC2.dll"

  mac、unix、linux下:

    具体可参考宴哥的博客http://blog.s135.com/pthreads/

调用方式:

  具体的用法也可以参考宴哥的博客http://blog.s135.com/pthreads/

  结合以前的get_html也可以这样来实现类

 1 class threads extends Thread
 2 {
 3     public $url = ‘‘;
 4     public $options = array();
 5     public $data;
 6
 7     public function __construct($url, $options = array()){
 8         $this->url = $url;
 9         $this->options = $options;
10     }
11
12     public function run(){
13         if(!empty($this->url)){
14             $this->data = $this->get_html($this->url, $this->options);
15         }
16     }
17
18     public function get_html($url,$options = array()){
19         if(empty($options)){
20             $options[CURLOPT_RETURNTRANSFER] = true;
21             $options[CURLOPT_TIMEOUT] = 5;
22         }
23         $ch = curl_init($url);
24         curl_setopt_array($ch,$options);
25         $html = curl_exec($ch);
26         curl_close($ch);
27         if($html === false){
28             return false;
29         }
30         return $html;
31     }
32 }

时间: 2024-10-14 04:35:14

pthreads多线程数据采集的相关文章

如何让您的php也支持pthreads多线程

我们常常会碰到这样一种情况,开发环境在windows下开发,而生产环境确是linux.windows下能正常运行,上传到linux后却无法好好地玩耍了.然后开始了一轮尼玛式的疯狂的查找原因,最后发现是服务器环境问题.这时只能默默地爆一句shit.最近在用php多线程开发一个小功能也碰到类似的问题,在此记录一下. 1.查找资料发现php5.3或以上,且线程安全版本,才支持多线程.于是通过phpinfo()查看,发现php版本过低且为非线程安全版本.因而首先需要升级php版本,由于采用了集成式的wd

windows下xampp安装PHP的pthreads多线程扩展

我的运行环境: 系统:windows10 ,64位 PHP:5.6.8 TS,VC11 ,32位 Apache: 2.0 我安装的是xampp集成环境 pthreads的windows扩展文件下载地址:http://windows.php.net/downloads/pecl/releases/pthreads/ 我下载的是2.0.9-5.6-ts-vc11-x86这个版本 安装步骤: 1,将pthreadVC2.dll复制到  XX盘:\xampp\php\ 2,将php_pthreads.d

PHP安装pthreads多线程扩展教程[windows篇]

一.判断PHP是ts还是nts版 通过phpinfo(); 查看其中的 Thread Safety 项,这个项目就是查看是否是线程安全,如果是:enabled,一般来说应该是ts版,否则是nts版. 二.根据PHP ts\nts版选择对应pthreads的版本 windows版本的下载地址 http://windows.php.net/downloads/pecl/releases/pthreads/0.1.0/ 本人php版本是5.4.17的所以下载php_pthreads-0.1.0-5.4

php pthreads 多线程扩展的使用:一个较为稳定例子。

今天研究了worker stackable的配合方法,写了两种形式,虽然能工作,但是都会出现内存不听增长的问题: 于是把第一个方法的代码邮件给了作者,到现在他没有回复我. 我最后放弃两者配合的方式,直接使用worker,发现到现在执行了582000个工作,内存没有增长,速度也基本稳定,代码如下: [php] view plain copy print ? <?php ini_set('zend.enable_gc', true); class ExampleWorker extends Work

网站数据采集软件 NETSpider

NETSpider网站数据采集软件是一款基于.Net平台的开源软件.软件部分功能是基本Soukey软件进行开发的.这个版本采用VS2010+.NET3.5进行开发的.NETSpider采摘当前提供的主要功能如下: 1. ? ?多任务多线程数据采集,支持POST方式(待定):2. ? ?可采集Ajax页面:3. ? ?支持Cookie,支持手工登录采集数据:4. ? ?支持采集事务:5. ? ?支持数据自动及手工导出,导出格式为:文本.Excel.Access.MSSql.Mysql等:6. ?

《Linux 应用编程》—第13章 Linux 多线程编程

目录 多线程概述 什么是线程 线程与进程的关系 为什么使用多线程 POSIX Threads 概述 线程管理 线程ID 创建与终止 创建线程 终止线程 线程范例1 连接与分离 线程分离 线程连接 线程范例2 线程属性 属性对象 线程状态 线程栈 线程范例3 线程安全 互斥量 条件变量 多线程概述 什么是线程 线程是进程内的顺序执行流,一个进程中可以并发多条线程,每条线程并行执行不同的任务. 线程与进程的关系 一个线程只能属于一个进程,一个进程可以包含多个线程,但是至少有一个主线程 资源分配给进程

[译林军] 译~CrossBridge 简介

本文由 9ria 社区译林军翻译,转载请注明出处.加入译林军 :http://bbs.9ria.com/thread-286920-1-1.html CrossBridge 是  Adobe  FlasCC 的开源版本(原 Alchemy 项目). 结合强大.熟悉和高性能的 C/C++ 到 Web.用 CrossBridge 可以把游戏机和电脑的 C/C++ 带到超过十亿人的网络上 - 跨浏览器,无需额外安装. 令人惊叹的原生游戏,欢迎来到 Web . <ignore_js_op>观看 Epi

python编写的自动获取代理IP列表的爬虫-chinaboywg-ChinaUnix博客

python编写的自动获取代理IP列表的爬虫-chinaboywg-ChinaUnix博客 undefined Python多线程抓取代理服务器 | Linux运维笔记 undefined java如果模拟请求重启路由器(网络爬虫常用),还有java如何下载图片 - baidu_nod的专栏 - 博客频道 - CSDN.NET undefined [多线程数据采集]使用Jsoup抓取数据+破解屏蔽ip访问. - MiniBu - 开源中国社区 undefined 单linux服务器同时拨多条AD

Jsoup总结

最近使用了Jsoup,感觉还是挺简单,挺方便的,轻而易举地使用java像jQuery一样操作html节点,轻松抓取网页源码,分析获取各个标签所需的东西. 对于采集网页类具有相当方便的作用 具体可看下面各个相关例子: Jsoup下载地址: http://jsoup.org/download jsoup开发指南,jsoup中文使用手册,jsoup中文文档: http://www.open-open.com/jsoup/ jsoup抓取网页+详细讲解 - 玩转java - 博客频道 - CSDN.NE