- 被自旋锁保护的临界区代码执行时不能睡眠。单核处理器下,获取到锁的线程睡眠,若恰好此时CPU调度的另一个执行线程也需要获取这个锁,则会造成死锁;多核处理器下,若想获取锁的线程在同一个处理器下,同样会造成死锁,若位于另外的处理器,则会长时间占用CPU等待睡眠的线程释放锁,从而浪费CPU资源。
- 若中断服务程序也要获得锁,则被自旋锁保护的临界区代码执行时不能被其他中断打断。原因同上类似。
- 被自旋锁保护的临界区代码在执行时,内核不能被抢占,亦同上类似。由自旋锁代码本身处理
来源:CSDN
作者:DADA2ndTIAN
链接:https://blog.csdn.net/zsj1126/article/details/103825089