自旋锁
形象的逻辑如下:

解读
- 只有第一个人能够得到 A 锁,其他人都得不到 A 锁。第一人得到 A 的时候,会把自己手里的标识与 A 进行交换——此时桌上就不是 A 了;
- 其他人就会尝试,如果发现不是 A,就不能交换,直到第一个人把锁放回来;
- 在单 CPU 上,如果第一个线程在释放锁之前就 crash(例如返回了,return 1) 了,就会造成死锁——占用 CPU 不放手。所以,往往需要使用一个定时器来定时的切换线程;
自旋锁的逻辑是如下述代码所示:
自旋锁的代码实现。
形象的逻辑如下:

自旋锁的逻辑是如下述代码所示:
自旋锁的代码实现。