用哲学家实现使用监视器

时间:2017-06-25 20:26:03

标签: operating-system monitor dining-philosopher

在使用监视器的Dining Philosophers实现中,为什么putdown() 操作调用test()操作两次?

$exam1= array(1 => "XL",2=>"CD");  
$exam2= array(5 => "XLd",7=>"CDW");   

1 个答案:

答案 0 :(得分:1)

它称之为两次,因为每个筷子被认为是它自己的资源。因此,您需要'发信号'()表示两个筷子现在都可单独提取。

我只处理这个问题的理论代码,但我不确定你是否提到筷子'i-1'和'i + 1'是正确的。我需要看看你的初始化和你的代码的其余部分,但传统的解决方案通常是指哲学家的筷子为(i + 1)为右筷子和(i + 4)为他的左筷子,在5个哲学家的情况下