- 信号量本质
- 信号量特点
- 信号量相关API
- 定义信号量
- 初始化信号量
- 获取信号量
- 尝试获取信号量
- 释放信号量
计数器,用来控制对公共资源的访问
信号量特点- 长时期的资源占用
- 获取信号量失败,触发上下文调度
- 当前进程(线程)陷入休眠,系统开销大
struct semaphore sem;初始化信号量
static inline void sema_init(struct semaphore *sem, int val)
参数:
- sem:指定要初始化的信号量
- val:信号量的初始值
void down(struct semaphore *sem);
参数:
- sem:指定要初始化的信号量
int down_trylock(struct semaphore *sem)
尝试获取一次信号量,获取成功返回0,获取失败返回非0值。
释放信号量void up(struct semaphore *sem)
参数:
- sem:指定要初始化的信号量



