递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 1058|回复: 7
打印 上一主题 下一主题

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

[复制链接]

2

主题

20

帖子

128

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
128
跳转到指定楼层
楼主
发表于 2024-8-16 11:32:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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



回复

使用道具 举报

444

主题

1万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

积分
40517
沙发
发表于 2024-8-16 21:22:21 | 只看该作者
有个清理方法可以释放资源,访问完毕后清理一下。
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

26

主题

1899

帖子

6920

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6920
板凳
发表于 2024-8-16 22:28:02 | 只看该作者
本帖最后由 Xelloss0618 于 2024-8-16 22:29 编辑

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

使用道具 举报

2

主题

20

帖子

128

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
128
地板
 楼主| 发表于 2024-8-17 07:27:02 | 只看该作者
创世魂 发表于 2024-8-16 21:22
有个清理方法可以释放资源,访问完毕后清理一下。

好的,谢谢
回复

使用道具 举报

2

主题

20

帖子

128

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
128
5#
 楼主| 发表于 2024-8-17 07:29:50 | 只看该作者
Xelloss0618 发表于 2024-8-16 22:28
CURL有两个接口,官方封装的这个不支持多线程并发,需要加锁。
CURL还有个并发接口,PIV模块里有封装,但也 ...

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

使用道具 举报

26

主题

1899

帖子

6920

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6920
6#
发表于 2024-8-17 09:30:49 | 只看该作者
domingo 发表于 2024-8-17 07:29
这样子啊,不知道大佬知道 有哪个模块 有支持多线程POST的方法吗?PIV、火山、乐易、精易? ...

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

使用道具 举报

2

主题

20

帖子

128

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
128
7#
 楼主| 发表于 2024-8-17 11:21:06 | 只看该作者
Xelloss0618 发表于 2024-8-17 09:30
多线程有两种用法:
1、在线程里用网络访问类的局部变量,别搞成员或全局变量即可;
2、用异步访问接口, ...

我的就是局部变量。。。
回复

使用道具 举报

26

主题

1899

帖子

6920

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6920
8#
发表于 2024-8-17 12:29:32 | 只看该作者
domingo 发表于 2024-8-17 11:21
我的就是局部变量。。。

说明网络库的初始化和释放都比较耗时
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-23 05:48 , Processed in 0.087138 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表