我尝试使用CURL库实现多线程下载。
我准备N个线程(下载不同范围的简单句柄)并调用 curl_multi_perform(multiHandle,& running) 之后。
我的问题
答案 0 :(得分:4)
libcurl多接口没有线程化。它在同一个线程中进行并行传输!
您可以随时在多把手上添加简易手柄。只需调用curl_multi_perform()然后它就会驱动所有添加的简单句柄。您也可以随时删除句柄。
您应该使用curl_multi_info_read()来确定已完成的句柄。在完成之前,您可以考虑使用它们。如果您想将一个简单的手柄放回多手柄以进行另一次转移,只需将其从手柄中移除(可能设置新选项)并再次添加。
另请参阅http://curl.haxx.se/libcurl/c/example.html了解许多libcurl示例,包括使用多接口的一堆示例。一般的多界面“教程”样式文档在这里:http://curl.haxx.se/libcurl/c/libcurl-multi.html