libCurl是一个非常强大的库,我这次是用它来实现FTP的功能。
之前没有好好的读文档,结果使用过程发现程序经常由于libCurl自动退出,由于我是多线程,查看了相关文档,发现是我对libCurl的多线程处理不对。
curl_global_init和curl_global_cleanup不是线程安全的,因此这两个函数在进程启动时初始化一次,在进程退出时释放一次就OK了。因为初始化函数会创建一份内存,而这份内存对所有使用libCurl的地方都是共享的,因此多线程多个地方多次的初始化和释放会导致libCurl出错。
阅读(4577) | 评论(0) | 转发(0) |