Peteron算法不基于原子操作实现互斥
分析两个进程下的场景:①如果是一个互斥锁变量则只能一个进程先执行,另一个后执行(单标志法的缺陷)。②所以此算法使用两个变量flag[0]和flag[1]用于给对方上锁,使两个进程可以互斥访问且都有资格首先执行。 确定了锁变量的数量 此时还有问题那就是先上锁还是先检查? |-如果先上锁后检查,并发时有死锁的可能。因为两个进程同时分别修改了flag[0],flag[1] 然后同时开始while检查,结果死循环。(双标志先检查法的缺陷) |-如果先检查后上锁,并发时锁不住。因为两个进程...
翻译
2021-08-28 18:01:21 ·
146 阅读 ·
0 评论