我正在尝试制作一个可以同时获取多个网址的程序。我正在使用libcurl和libuv http://curl.haxx.se/libcurl/c/multi-uv.html
的示例代码当我编译它并传递程序时,会有一些URL,例如
/curl_fetch google.com yahoo.com facebook.com
它工作正常,我立即得到结果。但是,当我传递更多参数时,例如100个URL,几分钟内根本没有返回任何内容。在尝试并行获取多个页面时,是否存在锁定的原因?
答案 0 :(得分:1)
要使传输真正并行,您需要使用为支持异步名称解析而构建的libcurl。它需要使用螺纹旋转变压器或c-ares构建。股票解析器是同步的,因此缓慢的DNS解析将阻止所有同时传输,如果你添加数百个传输机会,其中一些将有慢速名称解析......