Golang:当只有一个编写器使用atomic.StoreInt32更改值时,是否有必要在多个读取器中使用atomic.LoadInt32?

时间:2016-12-22 06:55:44

标签: go atomic

正如标题所说。 基本上我想知道的是,atomic.StoreInt32还会锁定读操作吗?

另一个相对问题:atomic.StoreUint64(&procRate, procCount)相当于atomic.StoreUint64(&procRate, atomic.LoadUint64(&procCount))

提前致谢。

1 个答案:

答案 0 :(得分:1)

是的,当您加载和存储相同的值时,需要使用原子操作。比赛探测器应该警告你。

至于第二个问题,如果同时使用procCount值,则仍需要使用原子操作加载它。这两个不等于

atomic.StoreUint64(&procRate, procCount)
atomic.StoreUint64(&procRate, atomic.LoadUint64(&procCount))

前者直接读取procCount以传递给StoreUint64,而后者传递通过LoadUint64安全获得的副本。