就餐的僵局,我实现哲学家就餐问题,但是我得到的哲学家蟒蛇
# Pick up the forks
forks[self.left_fork].acquire()
locked = forks[self.right_fork].acquire(False)
if locked == True:
break
forks[self.left_fork].release()
forks[self.left_fork], forks[self.right_fork] = forks[self.right_fo\
rk], forks[self.left_fork]
# Put down the forks
forks[self.right_fork].release()
forks[self.left_fork].release()
它打印出
1 is eating
2 is eating
3 is eating
,然后给出错误
什么是你期待它打印? – enginefree 2013-03-19 01:48:03
我不指望它会冻结并出现错误,并且在给定的时间内,所有5个应该正确地吃东西? – 2013-03-19 01:50:20
如果两个锁都被收购,破产的处理是什么?这似乎没有道理 - >一旦一位哲学家抓住两把叉子(锁),那两把叉就永远无法再被使用。 – Moshe 2013-03-19 01:56:02