在编写并发同步程序的时候,如果临界区非常小,比如说只有几条或几十条指令,那么我们可以选择自旋锁(spinlock).使用普通的互斥锁会涉及到操作系统的调度,因此小临界区一般首选自旋锁.自旋锁的工作方式就是让竞争的线程不断地读取一个变量的状态,判断是否满足可以进入临界区的条件. 最简单的自旋锁应该如何实现?假设我们用一个布尔变量表示临界区是否被占用,true表示被占用,false表示没有被占用,那么我们可以考虑这样的(伪)代码: void lock(bool *lck) { while (*lck…