在使用监视器的Dining Philosophers实现中,为什么putdown() 操作调用test()操作两次?
$exam1= array(1 => "XL",2=>"CD");
$exam2= array(5 => "XLd",7=>"CDW");
答案 0 :(得分:1)
它称之为两次,因为每个筷子被认为是它自己的资源。因此,您需要'发信号'()表示两个筷子现在都可单独提取。
我只处理这个问题的理论代码,但我不确定你是否提到筷子'i-1'和'i + 1'是正确的。我需要看看你的初始化和你的代码的其余部分,但传统的解决方案通常是指哲学家的筷子为(i + 1)为右筷子和(i + 4)为他的左筷子,在5个哲学家的情况下