确定一次原子操作需要多少个时钟周期是相当困难的。我将尝试解释在假设使用x86处理器(如评论中所述)和运行库使用"locked"指令实现 "atomic"时会发生什么,如果这些假设有任何错误,则像俗话说的那样 "一切皆可能"。在执行原子操作时,CPU首先将确保对(可能被缓存的)值进行“独占式”访问。这意味着向所有其他CPU发送消息,表示 "我是此变量的主人"。然后,每个其他CPU都必须刷新其副本(如果已修改),并将该值标记为“无效”,然后回复 "我完成了"。一旦所有处理器都回复了 "我完成了",主处理器就可以继续执行。这个过程在一个具有许多CPU(核心)的大型系统中可能需要相当长的时间(数百或数千周期)。当然,CPU可以通过知道没有其他CPU读取此值或没有其他CPU发出写入该值的请求来优化此过程,这种情况下可以非常快速。您可以通过编写一些代码,在两个线程中循环约1秒钟,尝试更新和读取相同的原子变量,并查看它的好坏程度。然后尝试两个 "update" 循环(因此在两个线程之间进行更新)。