Fang0x378 发表于 2022-1-4 21:05:28

请教线程冲突如何解决

本帖最后由 Fang0x378 于 2022-1-4 22:16 编辑

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








Fang0x378 发表于 2022-1-4 22:14:56



xqnh520 发表于 2022-1-4 22:33:09

http://bbs.voldp.com/data/attachment/forum/202201/04/221448h6hv8hft6tq8fshn.jpg

shuimiao 发表于 2022-1-4 22:47:42

多线程加锁怎么会卡。也只能加锁才安全啊,可以把锁限制在静态变量的前后,这样就不会影响其他代码的多线程性能

shuimiao 发表于 2022-1-4 22:49:04

如果不是数据共享,那就不搞全局静态就不用加锁了,数据共享必须加锁

Fang0x378 发表于 2022-1-4 22:52:18

shuimiao 发表于 2022-1-4 22:47
多线程加锁怎么会卡。也只能加锁才安全啊,可以把锁限制在静态变量的前后,这样就不会影响其他代码的多线程 ...

删的时候要加,写的时候要加,读的时候也要加吗?

shuimiao 发表于 2022-1-4 23:26:45

Fang0x378 发表于 2022-1-4 22:52
删的时候要加,写的时候要加,读的时候也要加吗?

读一般不用

urenai 发表于 2022-1-5 00:32:18

很简单,加锁就行,读也加好些。因为删的过程中,有读的行为,可能会越界吧。

创世魂 发表于 2022-1-5 09:23:08

写数据的时候加锁就行了。
页: [1]
查看完整版本: 请教线程冲突如何解决