如果我有两个线程同时修改结构上的字符串字段,我是否总是会看到分配给该字段的一个或另一个字符串,但没有别的?
否。如果您需要原子操作,则存在sync/atomic。
sync/atomic
在转到内存模型将所有相关的细节。在“内存模型”文档的顶部:
修改由多个goroutine同时访问的数据的程序必须序列化此类访问。 要序列化访问,请使用通道操作或其他同步原语(例如sync和sync/atomic 软件包中的原语)保护数据。
修改由多个goroutine同时访问的数据的程序必须序列化此类访问。
要序列化访问,请使用通道操作或其他同步原语(例如sync和sync/atomic 软件包中的原语)保护数据。
sync