boolen blocked[2];
int turn;
void P(int id)
{
while (true){
blocked[id] = true;
while(true != id){
while(blocked[1-id])
/*不做任何事*/
turn = id;
}
/* 临界区 */
blocked[id] = false;
/* 其余部分*/
}
}
void main()
{
blocked[0] = false;
blocked[1] = false;
turn =0;
parbegin(P(0), P(1));
} 这是 [HYMA66] 中提出的解决互斥问题的一种软件方法。请举出证明该方法不正确的一个反例。有趣的是,《 ACM通讯 》都被它蒙蔽了。
