正如标题所说。 基本上我想知道的是,atomic.StoreInt32还会锁定读操作吗?
另一个相对问题:atomic.StoreUint64(&procRate, procCount)
相当于atomic.StoreUint64(&procRate, atomic.LoadUint64(&procCount))
?
提前致谢。
答案 0 :(得分:1)
是的,当您加载和存储相同的值时,需要使用原子操作。比赛探测器应该警告你。
至于第二个问题,如果同时使用procCount
值,则仍需要使用原子操作加载它。这两个不等于:
atomic.StoreUint64(&procRate, procCount)
atomic.StoreUint64(&procRate, atomic.LoadUint64(&procCount))
前者直接读取procCount
以传递给StoreUint64
,而后者传递通过LoadUint64
安全获得的副本。