算法的思想是,每个哲学家想要进餐时,先拿左手边的筷子,如果筷子可用就拿起来,不可用就等待,再拿右手边的筷子,如果筷子可用,就拿起筷子,不可用就等待,只有当两个筷子都可用时,哲学家才能进餐。 为了实现这个算法,需要互斥锁和五个条件变量。 pthread_mutex_t mutex; pthread_cond_t chopstick[5]; 另外创建数组sticks[5]表示这五个筷子收否可用,当sticks[i]等于1时,表示筷子i可用,等于0表示这个筷子不可用。
评论星级较低,若资源使用遇到问题可联系上传者,3个工作日内问题未解决可申请退款~