火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[视窗] 哈希表多线程会崩溃,该怎么做?

[复制链接]

91

主题

488

帖子

2023

积分

金牌会员

免费版体验专员

Rank: 6Rank: 6

积分
2023
跳转到指定楼层
楼主
发表于 2021-6-23 21:33:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
哈希表,一个线程定时枚举,枚举循环中可能有删除操作。(定时清理资源)
另一个线程不定时会cha询、枚举cha询,插入等操作。(新客户登录 退出等操作)
测试了一下,很大几率会崩溃。
请问大神,该如何避免崩溃的发生?
非主流编程软件/非官方指定的/非正式版体验专员
回复

使用道具 举报

50

主题

484

帖子

1950

积分

金牌会员

Rank: 6Rank: 6

积分
1950
沙发
发表于 2021-6-23 22:12:38 | 只看该作者
互斥锁类用上了?
回复

使用道具 举报

76

主题

835

帖子

4266

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4266
板凳
发表于 2021-6-23 22:13:59 | 只看该作者
枚举的过程中,不可删除,除非吴总做修改...
解决方案...在枚举的过程中,加入到数组中,再数组中枚举清理
回复

使用道具 举报

91

主题

488

帖子

2023

积分

金牌会员

免费版体验专员

Rank: 6Rank: 6

积分
2023
地板
 楼主| 发表于 2021-6-23 22:39:31 | 只看该作者

刚看了一下,互斥锁用上貌似可以。
我原来以为互斥了以后返回了,原来在等待哦
非主流编程软件/非官方指定的/非正式版体验专员
回复

使用道具 举报

91

主题

488

帖子

2023

积分

金牌会员

免费版体验专员

Rank: 6Rank: 6

积分
2023
5#
 楼主| 发表于 2021-6-23 22:46:58 | 只看该作者
小蜗牛 发表于 2021-6-23 22:13
枚举的过程中,不可删除,除非吴总做修改...
解决方案...在枚举的过程中,加入到数组中,再数组中枚举清理 ...

嗯嗯
非主流编程软件/非官方指定的/非正式版体验专员
回复

使用道具 举报

50

主题

484

帖子

1950

积分

金牌会员

Rank: 6Rank: 6

积分
1950
6#
发表于 2021-6-23 22:54:49 | 只看该作者
Fang0x378 发表于 2021-6-23 22:39
刚看了一下,互斥锁用上貌似可以。
我原来以为互斥了以后返回了,原来在等待哦 ...

互斥锁就易语言的许可证!!
回复

使用道具 举报

3

主题

34

帖子

247

积分

中级会员

Rank: 3Rank: 3

积分
247
7#
发表于 2024-3-24 21:29:26 | 只看该作者
希望官方能封装个tbb::concurrent_hash_map。这个支持多线程
回复

使用道具 举报

17

主题

107

帖子

885

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
885
8#
发表于 2024-3-25 07:38:56 | 只看该作者
加了互斥锁是不是就影响并发的速度了
回复

使用道具 举报

26

主题

1505

帖子

5653

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
5653
9#
发表于 2024-3-25 08:57:29 | 只看该作者
199 发表于 2024-3-25 07:38
加了互斥锁是不是就影响并发的速度了

并发性能和安全本来就是鱼与熊掌,最安全还是加互斥锁,虽然有一些影响,但不算大。
C++也有无锁设计的哈希表,像上面说的tbb,但不是绝对安全,CPU型号和架构繁多,可能在某些CPU上出bug。
回复

使用道具 举报

28

主题

166

帖子

1471

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
1471
QQ
10#
发表于 2024-3-25 09:54:16 | 只看该作者
本帖最后由 lsfeeling 于 2024-3-25 10:00 编辑

哈希表和集线程不安全,要加锁就行了。加了锁肯定会影响速度。这就要看你的并发量有多大了。不是太大的话就考虑分表的思路,
这东西本来就是在内存用的,存临时数据。你能有多大的并发量啊。基本没啥问题。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-22 17:36 , Processed in 0.089910 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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