打印
[技术问答]

如何在多线程中避免数据竞争

[复制链接]
277|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Emily999|  楼主 | 2023-5-17 13:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何在多线程中避免数据竞争

使用特权

评论回复
沙发
daichaodai| | 2023-5-18 19:54 | 只看该作者
跑系统吧,进程间上锁。

使用特权

评论回复
板凳
juliestephen| | 2023-6-6 13:33 | 只看该作者
需要加锁               

使用特权

评论回复
地板
jkl21| | 2023-6-6 14:13 | 只看该作者
需要使用同步机制(如锁、信号量、原子变量等)

使用特权

评论回复
5
vivilyly| | 2023-6-6 15:15 | 只看该作者
可以使用消息队列等通信机制来实现不同线程之间的数据传递

使用特权

评论回复
6
i1mcu| | 2023-6-6 17:22 | 只看该作者
互斥锁吧               

使用特权

评论回复
7
bestwell| | 2023-6-6 18:05 | 只看该作者
如果可能的话,可以尽量减少共享数据的数量,或者通过分离共享数据的方式来避免数据竞争问题。例

使用特权

评论回复
8
Bowclad| | 2023-6-8 17:25 | 只看该作者
加锁

使用特权

评论回复
9
jkl21| | 2023-6-10 09:37 | 只看该作者
可以使用互斥锁、读写锁等机制来保护共享数据,确保同一时间只有一个线程能够访问该数据。

使用特权

评论回复
10
yeates333| | 2023-6-10 10:15 | 只看该作者
在函数中使用局部变量而不是共享变量,或者使用常量等避免变量修改。

使用特权

评论回复
11
chenqianqian| | 2023-6-11 15:53 | 只看该作者
上锁,互斥保护。

使用特权

评论回复
12
Jacquetry| | 2023-6-11 23:22 | 只看该作者
可以给数据加锁,一次只允许一个线程操作

使用特权

评论回复
13
LLGTR| | 2023-6-12 16:39 | 只看该作者
对数据加锁呗!

使用特权

评论回复
14
guijial511| | 2023-6-12 19:22 | 只看该作者
跑系统,上锁操作。

使用特权

评论回复
15
liu96jp| | 2023-6-18 15:06 | 只看该作者
在多线程中避免数据竞争需要注意以下几点:
a. 对共享数据进行适当的同步,确保同一时间只有一个线程可以访问共享数据。
b. 尽量减少共享数据的变化量,避免频繁地修改共享数据。
c. 对共享数据进行适当的封装和隔离,避免不同线程之间直接访问共享数据

使用特权

评论回复
16
q1ngt12| | 2023-6-18 16:12 | 只看该作者
数据竞争?你说的数据竞争是啥情况?

使用特权

评论回复
17
d1ng2x| | 2023-6-18 17:20 | 只看该作者
用数据锁好像就行吧

使用特权

评论回复
18
su1yirg| | 2023-6-18 18:35 | 只看该作者
多线程的单片机其实也是软件实现的那种多线程吧

使用特权

评论回复
19
q1d0mnx| | 2023-6-18 20:47 | 只看该作者
你可以多定义一些全局变量,然后通过赋值的方式实现数据交互

使用特权

评论回复
20
suw12q| | 2023-6-18 21:55 | 只看该作者
一般RTT的话是有同步机制的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

1493

帖子

3

粉丝