递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库

哈希表多线程下,是否加锁?

查看数: 1830 | 评论数: 5 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2024-5-11 16:59

正文摘要:

有多线程查找和增加哈希表,这要加锁吗?

回复

uuyyhhjj 发表于 2024-5-12 10:37:26
读写都要加,另外字节集添加数据效率很低,不适合高并发,你用多线程测试模拟一下就懂了,我记得不到百兆就开始卡
fengyishen 发表于 2024-5-12 03:05:04
我写的后端有用到,读取没有加锁。跑很久了,没崩溃过。因为经常更新迭代版本,所以最长也只运行过10几天。
hs999xl 发表于 2024-5-11 17:30:25
<火山程序 类型 = "通常" 版本 = 1 />

方法 方法_插入POST数据 <公开 静态>
参数 参数_数据 <类型 = 字节集类>
参数 参数_连接ID <类型 = 变整数>
{
    成员_POST哈希表锁.加锁 ()
    变量 局部_临时数据 <类型 = 字节集类>
    局部_临时数据 = 成员_POST提交数据.取值 (参数_连接ID)
    局部_临时数据.添加字节集 (参数_数据)
    成员_POST提交数据.插入 (参数_连接ID, 局部_临时数据)
    成员_POST哈希表锁.解锁 ()

}

这个姿势正确吗?1万个线程也不会出错了吧?
hs999xl 发表于 2024-5-11 17:13:24

火山的哈希表好像没有只读,取值如果没有值,会自动插入空值。用不上读写锁吧?
459943578 发表于 2024-5-11 17:09:22
首先读写锁

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

GMT+8, 2024-11-23 17:01 , Processed in 0.083030 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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