递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 5095|回复: 8
打印 上一主题 下一主题

[视窗] 请教线程冲突如何解决

[复制链接]

91

主题

490

帖子

2059

积分

金牌会员

免费版体验专员

Rank: 6Rank: 6

积分
2059
跳转到指定楼层
楼主
发表于 2022-1-4 21:05:28 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Fang0x378 于 2022-1-4 22:16 编辑

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








非主流编程软件/非官方指定的/非正式版体验专员
回复

使用道具 举报

91

主题

490

帖子

2059

积分

金牌会员

免费版体验专员

Rank: 6Rank: 6

积分
2059
沙发
 楼主| 发表于 2022-1-4 22:14:56 | 只看该作者


非主流编程软件/非官方指定的/非正式版体验专员
回复

使用道具 举报

41

主题

411

帖子

3238

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3238
板凳
发表于 2022-1-4 22:33:09 | 只看该作者
回复

使用道具 举报

411

主题

2515

帖子

8292

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
8292
地板
发表于 2022-1-4 22:47:42 来自手机 | 只看该作者
多线程加锁怎么会卡。也只能加锁才安全啊,可以把锁限制在静态变量的前后,这样就不会影响其他代码的多线程性能
回复

使用道具 举报

411

主题

2515

帖子

8292

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
8292
5#
发表于 2022-1-4 22:49:04 来自手机 | 只看该作者
如果不是数据共享,那就不搞全局静态就不用加锁了,数据共享必须加锁
回复

使用道具 举报

91

主题

490

帖子

2059

积分

金牌会员

免费版体验专员

Rank: 6Rank: 6

积分
2059
6#
 楼主| 发表于 2022-1-4 22:52:18 | 只看该作者
shuimiao 发表于 2022-1-4 22:47
多线程加锁怎么会卡。也只能加锁才安全啊,可以把锁限制在静态变量的前后,这样就不会影响其他代码的多线程 ...

删的时候要加,写的时候要加,读的时候也要加吗?
非主流编程软件/非官方指定的/非正式版体验专员
回复

使用道具 举报

411

主题

2515

帖子

8292

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
8292
7#
发表于 2022-1-4 23:26:45 | 只看该作者
Fang0x378 发表于 2022-1-4 22:52
删的时候要加,写的时候要加,读的时候也要加吗?

读一般不用
回复

使用道具 举报

346

主题

1600

帖子

6537

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6537
QQ
8#
发表于 2022-1-5 00:32:18 | 只看该作者
很简单,加锁就行,读也加好些。因为删的过程中,有读的行为,可能会越界吧。
专业承接18-98岁xx的心理及生理教育辅导。
回复

使用道具 举报

444

主题

1万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

积分
40535
9#
发表于 2022-1-5 09:23:08 | 只看该作者
写数据的时候加锁就行了。
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-25 07:12 , Processed in 0.093786 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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