为了账号安全,请及时绑定邮箱和手机立即绑定

使用原子而不是线程线程安全?

使用原子而不是线程线程安全?

Go
慕虎7371278 2021-09-10 15:07:16
有一个 parm 读得更多,写得更少,而且我不想使用互斥锁。我通过unsafeand完成了这样的操作atomic:type tmp struct {}var value unsafe.Pointer func GetValue() *tmp {    return (*tmp)(atomic.LoadPointer(&value))}func SetValue(p *tmp) {    atomic.StorePointer(&value, unsafe.Pointer(p))}这是线程安全的吗?和 atomic.StorePointer happen beforeatomic.LoadPointer ?
查看完整描述

3 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

在您不知道首先发生什么的意义上,它将是线程安全的,但更新是原子的。您是否考虑过使用 RWMutex 代替?除非有写操作,否则不会锁定读者。


查看完整回答
反对 回复 2021-09-10
  • 3 回答
  • 0 关注
  • 215 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信