我知道dekker算法看起来如何,但为什么这样的东西不起作用?
static void Enter(int i)
{
int j = 1 - i;
flags[i] = true;
if(flags[j])
{
while (turn!=i)
{
}
}
}
static void Exit(int i)
{
flags[i] = false;
turn = 1 - i;
}
我的解决方案出了什么问题?
答案 0 :(得分:0)
有一些方法可以简化代码非常相似的Dekker's algorithm,例如Peterson's algorithm。根据维基的说法,Dekker是第一个正确解决问题的方法,所以难怪他在第一次尝试时没有得到最简单的代码。
经过简短的介绍,您的代码似乎工作正常,但如果没有正式证据,则无法保证。