Tag: 餐饮 哲学家

餐饮哲学家饥饿的可能性

如果它保证满足以下所有条件,我需要检查我解决餐饮哲学家问题的算法: 没有僵局的可能性。 没有饥饿的可能性。 我在筷子上使用信号量来解决问题。 这是我的代码(算法): while(true) { // He is Hungry pickup_chopsticks(i); // He is Eating… drop_chopsticks(i); // He is thinking } // … void pickup_chopsticks(int i) { if(i % 2 == 0) /* Even number: Left, then right */ { semaphore_wait(chopstick[(i+1) % NUM_PHILOSOPHERS]); semaphore_wait(chopstick[i]); } else /* Odd number: Right, then left */ { […]