【发布时间】:2012-05-04 20:56:16
【问题描述】:
我最近在阅读有关 Compare And Swap 原子操作(CMPXCHG、.NET 的 Interlocked.CompareExchange 等)的信息。
我了解它在内部是如何工作的,以及它是如何从客户那里使用的。
我不太清楚的是什么时候有人会使用 CAS?
维基百科说:
CAS 用于实现同步原语,例如 信号量和互斥体,同样更复杂的无锁和 免等待算法。
那么,谁能给我一个更通用的真实用例,其中包含 CAS 使用的代码和描述?
此问题与语言无关,因此任何语言都可以(首选基于 C 或 x86 汇编)。
谢谢!
【问题讨论】:
标签: c# c assembly thread-safety compare-and-swap