spinlock(自旋锁):一种并发编程中的锁机制。线程在尝试获取锁失败时不会立刻“睡眠/阻塞”,而是在循环中反复检查锁是否可用(“自旋”),直到获得锁或放弃为止。常用于锁持有时间很短、切换线程开销更大的场景。(在其他语境中也可能指航海装备品牌或相关器材名,但最常见用法是计算机并发中的“自旋锁”。)
/ˈspɪnˌlɑːk/
A spinlock can be faster than a mutex for very short critical sections.
对于非常短的临界区,自旋锁可能比互斥锁更快。
On a multi-core system, using a spinlock in a long critical section can waste CPU time and reduce overall throughput.
在多核系统中,如果在很长的临界区使用自旋锁,可能会浪费 CPU 时间并降低整体吞吐量。
spinlock由 spin(“旋转、空转;在计算机里引申为‘忙等’”)+ lock(“锁”)组成。其核心意象是:拿不到锁时不进入休眠,而是像“空转”一样持续循环等待,因此称为“自旋锁”。