标签: go concurrency
如果我有两个线程同时修改结构上的字符串字段,我是否总是会看到分配给该字段的一个或另一个字符串,但没有别的?
答案 0 :(得分:11)
没有。如果您需要原子操作,则有sync/atomic。
sync/atomic
Go Memory Model将包含所有相关详细信息。从内存模型文档的顶部:
修改多个同时访问的数据的程序 goroutines必须序列化这种访问。 要序列化访问权限,请使用通道操作或其他操作保护数据 同步原语,例如sync和sync/atomic中的原语 包。
修改多个同时访问的数据的程序 goroutines必须序列化这种访问。
要序列化访问权限,请使用通道操作或其他操作保护数据 同步原语,例如sync和sync/atomic中的原语 包。
sync