资料参考: 《宋宝华 Linux设备驱动开发详解》 spinlock和mutex选用方法如下: 1、当锁不能被获取到时,使用互斥体的开销仅仅是上下文切换,使用自旋锁的开销是等待获取自旋锁(由临界区的执行时间决定)。若临界区比较小,适合使用自旋锁。若临界区较大,适合使用互斥锁 2、互斥锁所保护的临界区可包含引起阻塞的代码,而自旋锁要绝对避免用来保护有进程调度的临界区。因为进程调度当进程切换出去之后,另一个进程企图获取本自旋锁,这样就会导致死锁 3、互斥体存在于进程上下文,因此,如果被保护的共享资源需要再中断或软中断情况下使用,则只能选择自旋锁。当然,如果一定要用互斥体,则只能通过mutex_trylock()方式进行,不能获取就立即返回以避免阻塞
标签:互斥,选用,临界,mutex,自旋,进程,spinlock From: https://www.cnblogs.com/lethe1203/p/18095410