小编典典

变量赋值是原子的吗?

go

如果我有两个线程同时修改结构上的字符串字段,我是否总是会看到分配给该字段的一个或另一个字符串,但没有别的?


阅读 391

收藏
2020-07-02

共1个答案

小编典典

否。如果您需要原子操作,则存在sync/atomic

转到内存模型将所有相关的细节。在“内存模型”文档的顶部:

修改由多个goroutine同时访问的数据的程序必须序列化此类访问。

要序列化访问,请使用通道操作或其他同步原语(例如syncsync/atomic 软件包中的原语)保护数据。

2020-07-02