1. 概述
在 FreeRTOS
和 UCOS
中也有互斥体,将信号量的值设置为 1
就可以使用信号量进行互斥访问了,虽然可以通过信号量实现互斥,但是 Linux
提供了一个比信号量更专业的机制来进行互斥,它就是互斥体—mutex
。互斥访问表示一次只有一个线程可以访问共享资源,不能递归申请互斥体。在我们编写 Linux
驱动的时候遇到需要互斥访问的地方建议使用 mutex
。Linux
内核使用 mutex
结构体表示互斥体,定义如下:
struct mutex {
atomic_long_t owner;
spinlock_t wait_lock;
#ifdef