多线程 curl 同时处理多个连接
Multi threaded curl handling multiple connections at the same time
curl_multi 接口是否在内部生成新线程以同时处理多个请求?它是否等于手动生成线程并仅使用 curl_easy 句柄?什么更高效。我最多需要 1000 个并发请求。
https://curl.haxx.se/libcurl/c/multithread.html
使用 curl_multi 是否等于上面 link 中的示例?
发件人:https://curl.haxx.se/libcurl/c/libcurl-multi.html
Enable multiple simultaneous transfers in the same thread without making it complicated for the application.
这是什么意思?它如何处理同一个线程中的多个传输?我也可以创建 100 个线程和 100 个 curl_easy 句柄并在那里发出请求。
也许问题应该是:什么时候用多线程什么时候用curl_multi.
没有简单的答案。 libcurl 允许您和您的应用程序做出决定并支持在任一模式下工作。
libcurl多接口是一种单核单线程的方式,可以在同一个线程中做大量的并行传输。它允许轻松重用缓存、连接等。这有其明显的优势,但会使其 CPU 绑定在单个 CPU.
中
进行多线程传输将使每个 thread/handle 都有自己的缓存和连接池等,当它们有用时会发生变化,但会降低传输的可能性 CPU-当您可以将它们分散到更大的一组 cores/CPUs.
时,就会受到限制
哪个设计决策适合您,我们很难判断。
单个 curl_multi 句柄上的所有连接都不能在同一个线程上运行。它使用单个 select/poll/epoll 事件循环和非阻塞套接字在同一线程上同时处理所有连接。
curl_multi 接口是否在内部生成新线程以同时处理多个请求?它是否等于手动生成线程并仅使用 curl_easy 句柄?什么更高效。我最多需要 1000 个并发请求。
https://curl.haxx.se/libcurl/c/multithread.html
使用 curl_multi 是否等于上面 link 中的示例?
发件人:https://curl.haxx.se/libcurl/c/libcurl-multi.html
Enable multiple simultaneous transfers in the same thread without making it complicated for the application.
这是什么意思?它如何处理同一个线程中的多个传输?我也可以创建 100 个线程和 100 个 curl_easy 句柄并在那里发出请求。
也许问题应该是:什么时候用多线程什么时候用curl_multi.
没有简单的答案。 libcurl 允许您和您的应用程序做出决定并支持在任一模式下工作。
libcurl多接口是一种单核单线程的方式,可以在同一个线程中做大量的并行传输。它允许轻松重用缓存、连接等。这有其明显的优势,但会使其 CPU 绑定在单个 CPU.
中进行多线程传输将使每个 thread/handle 都有自己的缓存和连接池等,当它们有用时会发生变化,但会降低传输的可能性 CPU-当您可以将它们分散到更大的一组 cores/CPUs.
时,就会受到限制哪个设计决策适合您,我们很难判断。
单个 curl_multi 句柄上的所有连接都不能在同一个线程上运行。它使用单个 select/poll/epoll 事件循环和非阻塞套接字在同一线程上同时处理所有连接。