linux驱动编程

2022/7/21 5:23:44

本文主要是介绍linux驱动编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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

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

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

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

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

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

 



这篇关于linux驱动编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程