文件名称:Linux下哲学家问题的实现
文件大小:1KB
文件格式:C
更新时间:2017-06-21 07:10:58
Linux 哲学家问题 条件变量
算法的思想是,每个哲学家想要进餐时,先拿左手边的筷子,如果筷子可用就拿起来,不可用就等待,再拿右手边的筷子,如果筷子可用,就拿起筷子,不可用就等待,只有当两个筷子都可用时,哲学家才能进餐。 为了实现这个算法,需要互斥锁和五个条件变量。 pthread_mutex_t mutex; pthread_cond_t chopstick[5]; 另外创建数组sticks[5]表示这五个筷子收否可用,当sticks[i]等于1时,表示筷子i可用,等于0表示这个筷子不可用。