内存共享

本文探讨了在并发编程中如何避免由于多个线程同时访问同一数据而导致的内存一致性问题。提出了通过复制而不是共享数据、确保单一读写者原则、在传递数据前进行复制等方法来减少竞态条件和数据不一致的风险。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1:能 copy 的地方都不要 share

2:一份数据一个线程访问

3:你的数据你自己 memcpy

4:我的意思说, 数据永远只有一个读写者

5:转交给别人前先 copy

6:能传值的地方不要传引用




我的意思是这样的问题,

比如 struct { int a; int b; int c;} aa

若一个时间片的时候,数据是这样的, aa.a = 1 aa.b=1 aa. c=1
这时候,memcpy这个副本
正在拷贝的过程中,这时候aa全部赋值=2
这时候的时间片,原版: aa.a=2 aa.b=2 aa.c=2
副本memcpy出来的数据 aa.a=1, aa.b=1 aa.c=2
这样的数据片写入数据源就有问题了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值