首页 > 试题广场 >

考虑下面的程序: boolen blocked[2]; in

[问答题]
考虑下面的程序:
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通讯 》都被它蒙蔽了。

这道题你会答吗?花几分钟告诉大家答案吧!