当前 go 语言的内存模型是在 2009 年编写成的,后来进行了一些细微的修改,很明显,我们需要为当前的内存模型添加一些细节,这其中包括对竞争检测器明确的背书以及清楚地说明 sync 和 atomic 中的 API 是如何进行同步的。
这一部分我们将重申 Go 的设计哲学和他目前的内存模型,在这之后我将概述我认为我们还应该对 Go 内存模型做哪些细微的调整。它以前面的 硬件内存模型 和 编程语言内存模型 为背景。
我在 GitHub 上开了一个讨论区 来收集关于这部分的意见和反馈。基于这些反馈,我会在本月晚些时候提交一份正式的提案。使用 GitHub 的讨论功能本身就是一场实验,对于重大的变化,我们试图找到一种合理的方式来扩大它的讨论范围。