phpcurl_multi_exec官网例子里面为啥有两次dowhile
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了phpcurl_multi_exec官网例子里面为啥有两次dowhile,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2233字,纯文字阅读大概需要4分钟。
内容图文
![phpcurl_multi_exec官网例子里面为啥有两次dowhile](/upload/InfoBanner/zyjiaocheng/244/c00cb215927f4d688a73bd2e436bea45.jpg)
其中这一部分,谁能帮忙解释一下,用法也太怪了吧!
do {
$mrc = curl_multi_exec($mh, $active);//位置1
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && $mrc == CURLM_OK) {
if (curl_multi_select($mh) != -1) {
do {
$mrc = curl_multi_exec($mh, $active);//位置2
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
官网对 curl_multi_select 的解释:“阻塞直到cURL批处理连接中有活动连接。”没有事件机制所以不断循环去判断是否不等于-1?!判断成功之后,为啥又执行了一次$mrc = curl_multi_exec($mh, $active);//位置2
这个写法好奇怪啊,有三个while...
User Contributed Notes 里面有人提出如下代码,测试发现可以跑通,但是为啥要循环执行curl_multi_exec,按理说这个方法不是执行一次就好了么...
do {
curl_multi_exec($mh, $running);
curl_multi_select($mh);
} while ($running > 0);
回复内容:
感觉很难用啊,且这个例子在5.5下还跑不通(下面的 User Contributed Notes 里有人提供了解决方案)
其中这一部分,谁能帮忙解释一下,用法也太怪了吧!
do {
$mrc = curl_multi_exec($mh, $active);//位置1
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && $mrc == CURLM_OK) {
if (curl_multi_select($mh) != -1) {
do {
$mrc = curl_multi_exec($mh, $active);//位置2
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
官网对 curl_multi_select 的解释:“阻塞直到cURL批处理连接中有活动连接。”没有事件机制所以不断循环去判断是否不等于-1?!判断成功之后,为啥又执行了一次$mrc = curl_multi_exec($mh, $active);//位置2
这个写法好奇怪啊,有三个while...
User Contributed Notes 里面有人提出如下代码,测试发现可以跑通,但是为啥要循环执行curl_multi_exec,按理说这个方法不是执行一次就好了么...
do {
curl_multi_exec($mh, $running);
curl_multi_select($mh);
} while ($running > 0);
效率不同。
官方的demo通过
do {
$mrc = curl_multi_exec($mh, $active);//位置1
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
去循环,去确保所有进程都被开始执行了。
然后进入第二个嵌套循环。循环去获取还没返回完数据的进程。直到所有的都完成了。
do {
curl_multi_exec($mh, $running);
curl_multi_select($mh);
} while ($running > 0);
肯定是可以执行的,只不过你这种如果有一个进程超时,或者很慢,每次循环会拉所有进程一次的,内存和cpu的开销自然很大。。
实现方式不唯一。还有很多人优化到极致的,都可以试试,要根据自己代码的逻辑和业务情况去判断。要怎么优化
内容总结
以上是互联网集市为您收集整理的phpcurl_multi_exec官网例子里面为啥有两次dowhile全部内容,希望文章能够帮你解决phpcurl_multi_exec官网例子里面为啥有两次dowhile所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。