假设有两种类型的哲学家。一类总是先拿起左边的叉子(左撇子),另一类总是先拿起右边的叉子(右撇子)。左撇子的行为和图6.12中定义的一致。右擞子的行为如下:
begin repeat think; wait ( fork[ (i+1) mod 5] ); wait ( fork[i] ); eat; signal ( fork[i] ); signal ( fork[ (i+1) mod 5] ); forever end;
证明:
a.若至少有一个左撇子和一个右撇子,则他们的任何就座安排都可以避免死锁。
b.若至少有一个左撇子或右撇子,则他们的任何就座安排都可以防止饥饿。