我是 linux 领域的新手。
我对在各种情况下使用自旋锁(在内核模式下)有些困惑。请说清楚。
自旋锁用作忙等待机制。
1)自旋锁(单处理器+非抢占式内核)-->不存在(因为如果你在自旋锁中睡觉会导致死锁)
2) Spinlocks(Uniprocessor + Preemptive kernel)-->不应该使用,因为它浪费资源。(当线程在持有锁的情况下休眠会发生什么??其他进程可以正常执行吗?)
3) Spinlocks(Multiprocessor + Preemptive kernel)-->应谨慎使用。(当线程在持有锁的情况下休眠时会发生什么??其他进程可以正常执行吗?)
请让我知道我对上述情况的理解是否正确,并请提供任何额外的信息来帮助我澄清自旋锁的使用。