自旋锁:
互斥锁:
1.自旋锁不会睡眠,互斥锁会有睡眠,因此自旋锁效率高于互斥锁。
2.由于一直查询,所以自旋锁一直占用cpu,互斥锁不会,自旋锁导致cpu使用效率低
3.自旋锁容易造成死锁
互斥锁和自旋锁的区别
https://blog.csdn.net/susidian/article/details/510688581、自旋锁一直占用CPU,他在未获得锁的情况下,一直运行--自旋,所以占用着CPU,如果不能在很短的时 间内获得锁,这无疑会使CPU效率降低。
2、在用自旋锁时有可能造成死锁,当递归调用时有可能造成死锁,调用有些其他函数也可能造成死锁,如 copy_to_user()、copy_from_user()、kmalloc()等。
因此我们要慎重使用自旋锁,自旋锁只有在内核可抢占式或SMP的情况下才真正需要,在单CPU且不可抢占式的内核下,自旋锁的操作为空操作。自旋锁适用于锁使用者保持锁时间比较短的情况下。
自旋锁
https://www.cnblogs.com/kuliuheng/p/4064680.html