哈希表多线程下,是否加锁?
有多线程查找和增加哈希表,这要加锁吗?首先读写锁 459943578 发表于 2024-5-11 17:09
首先读写锁
火山的哈希表好像没有只读,取值如果没有值,会自动插入空值。用不上读写锁吧? <火山程序 类型 = "通常" 版本 = 1 />
方法 方法_插入POST数据 <公开 静态>
参数 参数_数据 <类型 = 字节集类>
参数 参数_连接ID <类型 = 变整数>
{
成员_POST哈希表锁.加锁 ()
变量 局部_临时数据 <类型 = 字节集类>
局部_临时数据 = 成员_POST提交数据.取值 (参数_连接ID)
局部_临时数据.添加字节集 (参数_数据)
成员_POST提交数据.插入 (参数_连接ID, 局部_临时数据)
成员_POST哈希表锁.解锁 ()
}
这个姿势正确吗?1万个线程也不会出错了吧? 我写的后端有用到,读取没有加锁。跑很久了,没崩溃过。因为经常更新迭代版本,所以最长也只运行过10几天。 读写都要加,另外字节集添加数据效率很低,不适合高并发,你用多线程测试模拟一下就懂了,我记得不到百兆就开始卡
页:
[1]