在基本概念系列文章中,我们知道了多线程编程的难点在于如何控制对共享数据的访问,数据竞争使得多个线程在访问共享数据时不能得到预想中的值,我们必须让它们互斥地进入临界区。接下来的几篇文章,我们学习一类互斥的实现方法—借助硬件原子指令的互斥实现,这种方式的实现借助了硬件的原子指令,所以我们的重点是理解硬件是怎样实现原子操作的以及怎么利用硬件提供的原子操作来实现互斥。