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

Go 是否支持 volatile / non-volatile 变量?

Go 是否支持 volatile / non-volatile 变量?

Go
慕标琳琳 2021-06-22 01:12:17
我是这门语言的新手,所以请耐心等待。我很好奇 GO 如何处理线程可用的数据存储,因为非局部变量也可以是非易失性的,例如在 Java 中。GO 有通道的概念,它本质上是线程间通信,意味着它绕过处理器缓存,直接读/写到堆。此外,在 go lang 文档中没有找到任何对 volatile 的引用。
查看完整描述

3 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

转到内存模型文档解释了为什么“挥发”的概念在围棋没有应用。

松散:除此之外,goroutine 可以自由地将 goroutine 本地更改缓存在寄存器中,因此其他 goroutine 无法观察到这些更改。要将这些更改“刷新”到内存中,必须执行同步。通过使用锁或通信(通道发送或接收)。


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

添加回答

举报

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