作为多线程和互斥锁的新手,我正在浏览维基百科作为初学者。我遇到了这部分:
CAS 可用于通过创建一个链表来实现任何共享数据结构的无等待互斥,其中每个节点代表要执行的所需操作。然后在插入新节点期间使用 CAS 更改链表中的指针。只有一个进程可以在其 CAS 中成功;同时尝试添加节点的所有其他进程都必须重试。然后每个进程可以保留数据结构的本地副本,并且在遍历链表时,可以在其本地副本上执行链表中的每个操作。
现在我了解了 CAS 的基本概念,我们基本上使用原子操作将值与预定值进行比较,如果匹配,我们交换它们。但我无法理解这里的“所需操作的链接列表”是什么意思?为什么所有进程都遵循相同的操作链表?