引言

硬件原子操作的实现这个系列中,我们从硬件指令的角度,讲解了为了实现原子操作硬件提供了哪些机制,然后,重点介绍了这些机制中的总线锁和内存锁定,它们暴露给软件和操作系统的方式就是LOCK指令前缀,最后,我们分析了两个很重要的可以以原子方式执行的指令XCHG和CMPXCHG,这两个指令很有代表意义,前者让我们知道怎么用硬件提供的原子操作来实现锁,进而实现多线程之间对临界区的互斥访问,后者同样可以用来实现锁,但是功能上的特点(比较并替换)让它直接可以实现对共享内存位置的原子更新。
CMPXCHG这个指令是jdk中原子包装类的基础,这个系列,我们来看JDK中的原子包装类,它们都在java.util.concurrent.atomic这个包中。