哲学家进餐问题?

来源:百度知道 编辑:UC知道 时间:2024/05/13 03:22:39
五位哲学家吃面条,只有五根筷子。每个人必须用一双筷子才能吃面条。请用信号量的PV描述哲学家之间的同步关系。
可以用C语言解答!!!
用C语言和伪代码都可以!!!

正好手头有答案,前两天刚做的,但是…………
我是用JAVA做的:P

public class kuai {
String name;

boolean Enable = true;

public kuai(String name) {
this.name = name;
}

public synchronized void pickup(){
try {
while(Enable==false){
this.wait();
}
this.Enable =false;
}
catch (Exception e) {

}

}

public synchronized void putdown() {
this.Enable =true;
this.notifyAll();
}

public static void main(String args[]) {
kuai k1 = new kuai("筷子1号");
kuai k2 = new kuai("筷子2号");
kuai k3 = new kuai("筷子3号");
kuai k4 = new kuai("筷子4号");
kuai k5 = new kuai("筷子5号");

People p1 = new People("老大", k1, k2);
People p2 = new People("老二", k2, k3);
People p3 = new People("老三", k3, k4);
People p4 = ne