什么时候链表比循环缓冲区更受欢迎?

When would a linked list be preferred over a circular buffer?

就big-O运行时而言,似乎两种数据结构在"average"情况下都有:

循环缓冲区的优点:

链表的优点:

基于此列表,在我看来,循环缓冲区几乎在所有情况下都是更好的选择。我错过了什么吗?

MCS 锁是目前最具扩展性的锁设计之一。线程使用原子比较和交换来尝试获取锁。如果可行,就完成了。如果它不起作用,线程将使用原子交换将自己排在等待者列表的尾部。

没有办法用没有锁的循环缓冲区或更复杂的原子指令使用来做类似的事情。