php curl多线程请求如何让每个线程请求完马上输出结果,而不是等所有请求完成一并输出?
高洛峰
高洛峰 2017-04-11 10:13:04
[PHP讨论组]

网站根目录下有一个test.html,内容仅有文字demo。

    demo

这是curl.php

 $ch){
    curl_multi_add_handle($mh,$ch); 
}

$running = null;

do{
    curl_multi_exec($mh,$running); 
}while($running > 0); 

//启动多线程
foreach($chArr as $k => $ch){
    $result[$k]= curl_multi_getcontent($ch);  

    //在这里输出内容
    echo "$result[$k]\n"      
    
    curl_multi_remove_handle($mh,$ch);
}

curl_multi_close($mh); 



设置了500个并发数,所以等待了大约10秒后输出了结果,等待期间程序没有任何响应。

我想达到的效果是每当一个curl线程请求完成,马上能在终端输出一个结果:demon。

请问大家应该如何去实现?如果Php实现不了的话,NodeJs,Python的解决方案都可以接受,谢谢了

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(2)
ringa_lee

nodejs就是异步的

怪我咯

虽然是多线程的,但是个同步的,不是异步的,php貌似没有异步能力吧

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号