gpt4 book ai didi

c++ - 在什么情况下无锁数据结构比基于锁的数据结构更快?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:13:25 25 4
gpt4 key购买 nike

我正在阅读 C++ Concurrency in Action Anthony Williams 的书,有几种无锁数据结构实现。在 Anthony 正在写的书中关于无锁数据结构的章节的前面:

This brings us to another downside of lock-free and wait-free code: although it can increase the potential for concurrency of operations on a data structure and reduce the time an individual thread spends waiting, it may well decrease overall performance.

事实上,我测试了书中描述的所有无锁堆栈实现与前面一章中基于锁的实现的对比。而且似乎无锁代码的性能总是低于基于锁的堆栈。

在什么情况下无锁数据结构更优并且必须首选?

最佳答案

无锁结构的一个好处是它们不需要上下文切换。然而,在现代系统中,无竞争锁也是无上下文切换的。要从无锁算法中受益(性能方面),必须满足几个条件:

  • 竞争必须很高
  • 应该有足够的 CPU 核心,以便旋转线程可以不间断地运行(理想情况下,应该固定在自己的核心上)

关于c++ - 在什么情况下无锁数据结构比基于锁的数据结构更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40286258/

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