
一 大纲
1 自旋锁定义
2 自旋锁原理
3 自旋锁时间阈值
4 自旋锁分类
5 自旋锁应用
6 自旋锁开启

二 自旋锁定义
何谓自旋锁? 它是为实现保护共享资源而提出一种锁机制。其实,自旋锁与互斥锁比较类似,它们都是为了解决对某项资源的互斥使用。无论是互斥锁,还是自旋锁,在任何时刻,最多只能有一个保持者,也就说,在任何时刻最多只能有一个执行单元获得锁。但是两者在调度机制上略有不同。对于互斥锁,如果资源已经被占用,资源申请者只能进入睡眠状态。但是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。

三 自旋锁原理
跟互斥锁一样,一个执行单元要想访问被自旋锁保护的共享资源,必须先得到锁,在访问完共享资源后,必须释放锁。如果在获取自旋锁时,没有任何执行单元保持该锁,那么将立即得到锁;如果在获取自旋锁时锁已经有保持者,那么获取锁操作将自旋在那里,直到该自旋锁

本文深入解析自旋锁的概念、原理及应用,对比互斥锁,介绍自旋锁时间阈值设定,探讨SMP与NUMA架构下的锁机制,包括CLH锁与MCS锁的特点与优劣。

429

被折叠的 条评论
为什么被折叠?



