首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

应用curl实现多线程

2012-09-14 
使用curl实现多线程使用curl实现多线程curl一般用来抓取网页,第二种就是get或者post数据,第三种应用就是实

使用curl实现多线程

使用curl实现多线程

curl一般用来抓取网页,第二种就是get或者post数据,第三种应用就是实现PHP的多线程任务

下面来实现多线程的

可以返回:

  • ?

    关于do while的那段解释:

    因为$active要等全部url数据接受完毕才变成false,所以这里用到了curl_multi_exec的返回值判断是否还有数据,

    当有数 据的时候就不停调用curl_multi_exec,暂时没有数据就进入select阶段,新数据一来就可以被唤醒继续执行。

    这里的好处就是CPU的无谓 消耗没有了。更详细的说明:http://hi.baidu.com/%D4%C2%D2%B9%C4%FD%ED%F8/blog/item/9dfcf4fbe6b84374024f563d.html

    ?

    这个多线程的写法步骤:

    第一步:调用curl_multi_init

    第二步:循环调用curl_multi_add_handle

    这一步需要注意的是,curl_multi_add_handle的第二个参数是由curl_init而来的子handle。

    第三步:持续调用curl_multi_exec

    第四步:根据需要循环调用curl_multi_getcontent获取结果

    第五步:调用curl_multi_remove_handle,并为每个字handle调用curl_close

    第六步:调用curl_multi_close

    多线程的测试效果图:

    应用curl实现多线程

    总结:36个http请求,从执行的是时间顺序上来看,三个网站的ip交叉,说明是同时并发的!

    ?

    ?

    ?

    ?

    ?

    ?

    ?

热点排行