CAS原理

最近有次面试,问到CAS的底层实现原理,原先看博客和知乎上都是说使用硬件来实现比较和替换的原子性;被毒打了;现在记录一下。

1.CAS操作是通过sun包下Unsafe类

CAS原理

2.CAS的原理

Unsafe中对CAS的实现是C++。

CAS的实现和操作系统、CPU都有关系

Linux的X86下主要是通过cmpxchgl这个指令在CPU级完成CAS操作的,但在多处理器情况下必须使用lock指令加锁来完成。从这个例子就可以比较清晰的了解CAS的底层实现了。