驱动开发系列93 - mutex

张开发
2026/4/21 20:16:28 15 分钟阅读

分享文章

驱动开发系列93 - mutex
一:Mutex 介绍互斥锁(mutex)是本文将要讨论的第二种也是最后一种锁机制。它的行为与自旋锁(spinlock)非常类似,唯一的区别在于:使用 mutex 时,代码可以进入睡眠状态。如果你尝试获取一个已经被其他任务持有的 mutex,那么当前任务会被挂起,只有在该 mutex 被释放时才会被唤醒。这次不会发生“自旋等待”,也就是说,在你的任务处于睡眠状态时,CPU 可以去执行其他工作。正如前面提到的,自旋锁是由CPU 持有的锁;而 mutex 则是由任务(task)持有的锁。mutex 是一种简单的数据结构,它内部包含:一个等待队列(wait queue),用于让竞争者进入睡眠状态;一个自旋锁(spinlock),用于保护对该等待队列的访问。这一点可以从下

更多文章