我最近在阅读有关比较和交换原子操作(CMPXCHG、.NET 的 Interlocked.CompareExchange 等)的信息。
我了解它在内部是如何工作的,以及它是如何从客户那里使用的。
我不太清楚的是什么时候有人会使用 CAS?
维基百科说:
CAS 用于实现同步原语,如信号量和互斥锁,以及更复杂的无锁和无等待算法。
那么,谁能给我一个更通用的真实世界用例,其中包含 CAS 使用的代码和描述?
这个问题与语言无关,因此任何语言都可以(首选基于 C 或 x86 汇编)。
谢谢!