有五個哲學家,他們的生活方式是交替地進行思考和進餐。他們共用一張圓桌,分別坐在五張椅子上。
在圓桌上有五個碗和五支筷子,平時一個哲學家進行思考,飢餓時便試圖取用其左、右最靠近他的筷子,只有在他拿到兩支筷子時才能進餐。進餐完畢,放下筷子又繼續思考。
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();
}
}