递归火山软件开发平台

标题: 哈希表多线程下,是否加锁? [打印本页]

作者: hs999xl    时间: 2024-5-11 16:59
标题: 哈希表多线程下,是否加锁?
有多线程查找和增加哈希表,这要加锁吗?

作者: 459943578    时间: 2024-5-11 17:09
首先读写锁
作者: hs999xl    时间: 2024-5-11 17:13
459943578 发表于 2024-5-11 17:09
首先读写锁

火山的哈希表好像没有只读,取值如果没有值,会自动插入空值。用不上读写锁吧?
作者: hs999xl    时间: 2024-5-11 17:30
<火山程序 类型 = "通常" 版本 = 1 />

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

}

这个姿势正确吗?1万个线程也不会出错了吧?
作者: fengyishen    时间: 2024-5-12 03:05
我写的后端有用到,读取没有加锁。跑很久了,没崩溃过。因为经常更新迭代版本,所以最长也只运行过10几天。
作者: uuyyhhjj    时间: 2024-5-12 10:37
读写都要加,另外字节集添加数据效率很低,不适合高并发,你用多线程测试模拟一下就懂了,我记得不到百兆就开始卡




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4