Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 多线程卷曲同时处理多个连接_C++_C_Libcurl - Fatal编程技术网

C++ 多线程卷曲同时处理多个连接

C++ 多线程卷曲同时处理多个连接,c++,c,libcurl,C++,C,Libcurl,curl_多接口是否在内部生成新线程以同时处理多个请求?它是否等同于手动生成线程并仅使用curl_轻松句柄?更有效的是。我需要处理多达1000个并发请求 使用curl_multi是否等于上面链接中的示例 发件人: 在同一线程中启用多个同时传输,而不会使应用程序变得复杂 这是什么意思?它如何处理同一线程中的多个传输?我还可以创建100个线程和100个简单的句柄,并在那里发出请求 也许问题应该是:什么时候使用多线程,什么时候使用curl\u multi。没有简单的答案。libcurl允许您和您的应

curl_多接口是否在内部生成新线程以同时处理多个请求?它是否等同于手动生成线程并仅使用curl_轻松句柄?更有效的是。我需要处理多达1000个并发请求

使用curl_multi是否等于上面链接中的示例

发件人:

在同一线程中启用多个同时传输,而不会使应用程序变得复杂

这是什么意思?它如何处理同一线程中的多个传输?我还可以创建100个线程和100个简单的句柄,并在那里发出请求


也许问题应该是:什么时候使用多线程,什么时候使用curl\u multi。

没有简单的答案。libcurl允许您和您的应用程序做出决定,并支持在任一模式下工作

libcurl多接口是一种单核单线程方式,用于在同一线程中执行大量并行传输。它允许轻松重用缓存、连接等。这有其明显的优势,但会使它的CPU限制在单一的CPU

进行多线程传输将使每个线程/句柄都有自己的缓存和连接池等,这些缓存和连接池等在有用时会改变,但当您可以将传输分散到更大的一组内核/CPU上时,将使传输不太可能受CPU限制


对于我们来说,哪种设计决策适合您并不容易判断。

否单个卷曲多手柄上的所有连接都在同一个线程上运行。它使用单个select/poll/epoll事件循环和非阻塞套接字在同一线程上并发处理所有连接。

“curl\u multi interface是否在内部生成新线程以并发处理多个请求?”否。正如文档(您自己引用)所述:“在同一线程中启用多个同时传输”。至于如何操作:文档链接到,其中显示了使用
select
的示例。还有,它看起来像ePult/KQue/C,C或C++的接口。他们是不同的语言。选择一个。@tambre它们没有那么大的不同,问题是关于libcurl的,所以这并不重要,它适用于两者。@tambre libcurl是C API。