在多线程中使用curl句柄的错误工作方法的替代方法
Alternative working method to the wrong one which uses curl handles in multithreading
由于libcurl是线程安全的,正如其官方文档中所述
libcurl是线程安全的,但是。。。
上面还写着:
手柄。决不能在多个线程中共享同一个句柄。您可以在线程之间传递句柄,但在任何给定时间都不能使用来自多个线程的单个句柄。
因此,在多个线程上创建单个句柄并使它们(句柄)同步是行不通的。
我如何才能获得一种替代的、高效且廉价的HTTP请求方式(通常情况下,POST和get请求也是如此)?
至少对我来说,这听起来像是你在误解文档。
您可以在每个需要发出请求的线程中创建一个单独的句柄,该线程可以通过该句柄(安全地)发出请求。
您可以创建一个句柄,并在多个线程之间共享,但您需要同步访问,因此在任何给定时间只有其中一个线程发出请求。实现这一点的明显方法是使用互斥锁来保护句柄,互斥锁需要在调用之前获取,并一直保持到调用完成。
为了简单起见,您可能希望在每个将进行curl调用的线程中创建一个单独的句柄。至少在我阅读文档时,只要每个线程使用一个单独的句柄,而另一个线程不能/不会同时使用该句柄,那么您就安全了。
相关文章:
- C++:正在检查LinkedList中的回文-递归方法-错误
- C++数组队列实现方法错误
- 方法错误"not all control paths return a value"和方法不返回值
- OpenGL 顶点缓冲区类重定义和模板方法错误
- 如何在 VC++ 中通过引用传递另一个对象的方法(错误 C2664)
- 复数程序编译时的计算方法错误
- CMake 构建错误 - 虚拟方法错误缺少 vtable
- 接受 lambda 作为参数的类方法 - 错误消息
- c++程序方法错误visualstudio
- OpenCV "findContours"方法错误
- std::线程类方法错误
- 基类没有新方法错误
- C++派生类继承方法错误
- 指向类方法错误c++11的指针数组
- 使用jni调用方法:错误的jni oop参数
- QVector.push_back方法错误
- 对静态方法错误的未定义引用
- Friend方法错误
- async_write方法错误
- 重写方法错误C++