1、定义
static semaphore sem;
2、初始化
sema_init(&sem, 1);
3、获取信号量
down_trylock(&sem);
down_interruptible(&sem)
4、释放信号量
up(&sem);
注意:
- semaphore与spin_lock的区别,spin_lock获取不到锁会在原地自旋,semaphore获取不到信号量会将进程挂起,进入睡眠
- down_trylock 与 down_interruptible的区别(TBD)
1、定义
static semaphore sem;
2、初始化
sema_init(&sem, 1);
3、获取信号量
down_trylock(&sem);
down_interruptible(&sem)
4、释放信号量
up(&sem);
注意: