信号量可以替换互斥x:
- 用1 初始化SEM
- lock((:do sem_wait((;(在临界部分中SEM = 0(
- unlock((:do sem_post(1(;
那么为什么我们需要静音?
mutex的存在主要是为了保护代码的关键部分。与信号量相比,由于代码更简单,更短,或者可以提供更丰富的功能。
有许多类型的静音类型:"正常"的静音,递归静音,共享静音(读取器锁定锁(。一些MUTEX实现可以尝试实现"优先级继承"来战斗优先倒置。所有这些都不能用于信号量,因为其使用模式太宽了。