【发布时间】:2017-06-24 17:38:22
【问题描述】:
curl_multi 接口是否在内部产生新线程以同时处理多个请求?是否等于手动生成线程并仅使用 curl_easy 句柄?什么性能更高。我需要最多并发 1000 个请求。
https://curl.haxx.se/libcurl/c/multithread.html
是否使用 curl_multi 等于上面链接中的示例?
发件人:https://curl.haxx.se/libcurl/c/libcurl-multi.html
在同一线程中启用多个同时传输,而不会使应用程序变得复杂。
这是什么意思?它如何处理同一线程中的多个传输?我也可以用 100 个 curl_easy 句柄创建 100 个线程并在那里发出请求。
也许问题应该是:何时使用多线程,何时使用 curl_multi。
【问题讨论】:
-
"curl_multi 接口是否在内部生成新线程以同时处理多个请求?" 不。正如文档(由您自己引用)所说:“启用多个同时传输在同一个线程中".
-
至于如何:文档链接到curl.haxx.se/libcurl/c/curl_multi_perform.html,其中显示了使用
select的示例。还有curl.haxx.se/libcurl/c/curl_multi_socket_action.html,看起来像是epoll/kqueue/whatever的接口。 -
C 还是 C++?它们是不同的语言。选择一个。
-
@tambre 他们没有什么不同,问题是关于 libcurl 的,所以没关系,它适用于两者。
-
@tambre libcurl 是 C API。