有五个哲学家,他们的生活方式是交替地进行思考和进餐。他们共用一张圆桌,分别坐在五张椅子上。
在圆桌上有五个碗和五支筷子,平时一个哲学家进行思考,饥饿时便试图取用其左、右最靠近他的筷子,只有在他拿到两支筷子时才能进餐。进餐完毕,放下筷子又继续思考。
public class day01 {
private static String s1="筷子左";
private static String s2="筷子右";
public static void main(String[] args){
new Thread(){
public void run(){
while (true){
synchronized (s1){
System.out.println(getName()+"获取"+s1+"等待"+s2);
synchronized (s2){
System.out.println(getName()+"拿到"+s2+"开吃");
}
}
}
}
}.start();
new Thread(){
public void run(){
while (true){
synchronized (s2){
System.out.println(getName()+"获取"+s2+"等待"+s1);
synchronized (s1){
System.out.println(getName()+"拿到"+s1+"开吃");
}
}
}
}
}.start();
}
}