递归火山软件开发平台

标题: 请教线程冲突如何解决 [打印本页]

作者: Fang0x378    时间: 2022-1-4 21:05
标题: 请教线程冲突如何解决
本帖最后由 Fang0x378 于 2022-1-4 22:16 编辑

一个全局静态哈希表变量,在多个线程里可能读可能写可能删,如何避免线程冲突?
打个比方,好几个方法读,好几个方法写,还有几个方法会删。
如果用互斥锁的话,那程序基本上只能单线程跑了,肯定会卡的不得了,求大师指点。


(, 下载次数: 55)

(, 下载次数: 37)

(, 下载次数: 37)


作者: Fang0x378    时间: 2022-1-4 22:14

(, 下载次数: 59)

作者: xqnh520    时间: 2022-1-4 22:33

作者: shuimiao    时间: 2022-1-4 22:47
多线程加锁怎么会卡。也只能加锁才安全啊,可以把锁限制在静态变量的前后,这样就不会影响其他代码的多线程性能
作者: shuimiao    时间: 2022-1-4 22:49
如果不是数据共享,那就不搞全局静态就不用加锁了,数据共享必须加锁
作者: Fang0x378    时间: 2022-1-4 22:52
shuimiao 发表于 2022-1-4 22:47
多线程加锁怎么会卡。也只能加锁才安全啊,可以把锁限制在静态变量的前后,这样就不会影响其他代码的多线程 ...

删的时候要加,写的时候要加,读的时候也要加吗?
作者: shuimiao    时间: 2022-1-4 23:26
Fang0x378 发表于 2022-1-4 22:52
删的时候要加,写的时候要加,读的时候也要加吗?

读一般不用
作者: urenai    时间: 2022-1-5 00:32
很简单,加锁就行,读也加好些。因为删的过程中,有读的行为,可能会越界吧。
作者: 创世魂    时间: 2022-1-5 09:23
写数据的时候加锁就行了。




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