就餐的僵局,我實現哲學家就餐問題,但是我得到的哲學家蟒蛇
# 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