摘要:
哲学家就餐问题可以采取预防死锁的方案,就是使用互斥量和信号量锁定资源。互斥量:对资源进行锁定的意思就是说,当一个哲学家使用叉子的时候,他首先要先把叉子锁定,然后,拿起来。这个时候如果别的哲学家也来拿相同的叉子,发现,该叉子是被互斥量锁定了,不能够拿,那么,他就不会来抢占这个叉子,而是在排等待队列中。这样就可以避免死锁的发生。信号量:同样,没有资源的时候,信号量的值是0,有的时候就不断地加1。“0,1”信号和互斥量是相似的。使用互斥量预防死锁代码:/** *哲学家吃饭问题:几个哲学家吃饭,假定哲学家有五个人,这五个哲学家坐在一张圆桌上面, *每个哲学家的左手旁边都放有一个叉子(fork),那么, 阅读全文