gpt4 book ai didi

multithreading - 原子操作有多昂贵?

转载 作者:行者123 更新时间:2023-12-01 23:10:03 24 4
gpt4 key购买 nike

我正在深入研究多线程编程并考虑使用原子操作进行无锁引用计数。

很明显,至少在恒定规模上,原子操作可能比非原子操作慢。我担心的是其他 CPU 同步来执行原子操作。

我想知道在核心 A 上执行原子操作是否(如果,以及多少)影响其他核心的性能,其中:

  • 与A核无关
  • 正在执行与核心 A 相同进程的不同线程
  • 正在执行原子操作
  • 正在执行原子操作并且正在执行与核心 A 相同进程的不同线程
  • 正在执行任何与内存相关的操作,即。加载、存储、...
  • 正在与核心 A
  • 相同的内存区域(缓存行,页?)中执行任何与内存相关的操作

    最佳答案

    很多人认为原子操作很便宜。然而,这不一定正确,因为原子操作是一种概括。有 3 种基本类型的原子操作:

  • 原子保存
  • 原子负载
  • Atomic CompareAndSet(递增/递减/等)

  • 前两个通常或多或少便宜(或者,众所周知,其成本与英特尔的非原子 friend 完全相同)。它们确实现加了内存屏障,但这些屏障仅与执行它们的 CPU 相关,并且 CPU 正在努力使屏障高效。然而,第三个在竞争中可能并不便宜。 Atomic CAS 和 friend 实际上在循环中执行操作,直到成功,因此在争用情况下可能需要大量时间来执行操作。

    关于multithreading - 原子操作有多昂贵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32591204/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com