

进程互斥的软件实现方式
<aside>
💡
理解两个核心思想——“谦让”和“表达意愿”
</aside>

单标识法

- 当turn不等于自身进程号时会在进入区一直等待,直到用完自身的时间片


缺点——违反了“空闲让进”原则

双标志先检查法

- 一个进程在进入区完成两项工作
- 如果对方想进入临界区,则自身循环等待
- 如果对方不想进入临界区,则标记自身想进入临界区(flag[i] = true)

缺点——违法了“忙则等待”的原则
- 检查和上锁并不同步,如果检查后上锁前发生了进程切换可能会发生多个进程同时上锁
- 如果检查和上锁能够一气呵成,则双标志先检查法是个合理的算法
