linux驱动编程


1、自旋锁:参考博文https://blog.csdn.net/helloguoqijun/article/details/77489317

     自旋锁是一种轻量级的互斥锁,可以更高效的对互斥资源进行保护。在短期间内进行轻量级的锁定。

     和信号量、互斥锁的比较:

     缺点:请求它的线程在等待锁重新可用的期间进行自旋(特别浪费处理器时间),所以自旋锁不应该被持有时间过长。如果需要长时间锁定的话, 最好使用信号量

     优点:自旋锁是一种轻量级的互斥锁,可以更高效的对互斥资源进行保护,会关闭系统抢占或者本地中断,因此减少死锁的问题。互斥锁需要做任务切换,阻塞的情况下自旋锁的效率就远高于互斥锁。

     各API的比较: spin_lock为了防止内核的抢占死锁,spin_lock_irq为了防止内核和中断的抢占死锁,spin_lock_irqsave为了防止进入自旋状态丢掉之前的中断状态。

 

原创文章,作者:506227337,如若转载,请注明出处:https://blog.ytso.com/tech/aiops/275644.html

(0)
上一篇 2022年7月20日 16:06
下一篇 2022年7月20日 16:06

相关推荐

发表回复

登录后才能评论