domingo 发表于 2024-8-16 11:32:52

curl的网络访问类是不是不支持多线程并发


自己写了一个多线程,调用了curl类库,然后发现开多线程后很卡,CPU占用很高。

但是加锁后就没问题了,是不是这个类库不支持多线程并发。

https://i2.imgs.ovh/d/BQACAgEAAx0EUvSR8wACJPtmvsSgRLvaY1HtWTCH_tCw4eBWpAACyQMAAisy-UVXqJd6LwU3EjUE

https://i2.imgs.ovh/d/BQACAgEAAx0EUvSR8wACJPpmvsSgBZEYi3_r13Ix-xzw4ANFKgACyAMAAisy-UXkcO6rI3sJnTUE

创世魂 发表于 2024-8-16 21:22:21

有个清理方法可以释放资源,访问完毕后清理一下。

Xelloss0618 发表于 2024-8-16 22:28:02

本帖最后由 Xelloss0618 于 2024-8-16 22:29 编辑

CURL有两个接口,官方封装的这个不支持多线程并发,需要加锁。
CURL还有个并发接口,PIV模块里有封装,但也不咋好用。

domingo 发表于 2024-8-17 07:27:02

创世魂 发表于 2024-8-16 21:22
有个清理方法可以释放资源,访问完毕后清理一下。

好的,谢谢

domingo 发表于 2024-8-17 07:29:50

Xelloss0618 发表于 2024-8-16 22:28
CURL有两个接口,官方封装的这个不支持多线程并发,需要加锁。
CURL还有个并发接口,PIV模块里有封装,但也 ...

这样子啊,不知道大佬知道 有哪个模块 有支持多线程POST的方法吗?PIV、火山、乐易、精易?

Xelloss0618 发表于 2024-8-17 09:30:49

domingo 发表于 2024-8-17 07:29
这样子啊,不知道大佬知道 有哪个模块 有支持多线程POST的方法吗?PIV、火山、乐易、精易? ...

多线程有两种用法:
1、在线程里用网络访问类的局部变量,别搞成员或全局变量即可;
2、用异步访问接口,目前应该只有PIV模块里有封装,包括curl和WinHTTP

domingo 发表于 2024-8-17 11:21:06

Xelloss0618 发表于 2024-8-17 09:30
多线程有两种用法:
1、在线程里用网络访问类的局部变量,别搞成员或全局变量即可;
2、用异步访问接口, ...

我的就是局部变量。。。

Xelloss0618 发表于 2024-8-17 12:29:32

domingo 发表于 2024-8-17 11:21
我的就是局部变量。。。

说明网络库的初始化和释放都比较耗时
页: [1]
查看完整版本: curl的网络访问类是不是不支持多线程并发