解释为什么自旋锁不适用于单处理器系统,但通常用于多处理器系统。
- 自旋锁不适合单处理器的原因是由于当一个进程处于自旋锁状态时说明其正在等待某一个资源,而在单处理器系统中,一旦发生了这种自旋锁,那么拥有资源的那个进程也会由于无法得到CPU而一直等待,这样之后,占用CPU的进程会等待另一个进程释放资源,占用资源的进程会等待另一个进程释放CPU,从而导致程序进入一个死锁的状态,因此单处理器不适合自旋锁
- 在多处理器中,即使一个进程处于自旋锁状态而占用一个CPU,拥有资源的进程也可以在另外空闲的处理器上执行,直到资源释放,处于忙等的进程这时便可以正常进行,防止了死锁的发生