搜索资源列表
threadphilosopher
- 利用线程方案实现实现哲学家问题.设置五个信号量代表五把叉子,初使值均为1,表示5把叉子均可以取,设置五个线程代表5个哲学家,其值分别为0~4,规定奇数号的哲学家先拿起他左边的叉子,然后再去拿他右边的叉子 而偶数号的哲学家则相反.按此规定,将是1,2号哲学家竞争1号叉子,3,4号哲学家竞争3号叉子.即五个哲学家都竞争奇数号叉子,获得后,再去竞争偶数号叉子,最后总会有一个哲学家能获得两支叉子而进餐。而申请不到的哲学家进入阻塞等待队列,根FIFO原则,则先申请的哲学家会较先可以吃饭,因此不会出现饿死的