www.pudn.com > ChopStickTest.rar > ChopStickTest.java


class ChopStick extends Thread{ 
	boolean available; 
	ChopStick() {  available=true; } 
	public synchronized void takeup() {//取走筷子准备就餐 
		while(!available) { 
			try { 
				System.out.println("哲学家等待筷子"); 
				wait(); 
			}catch(InterruptedException e) { } 
		} 
		available=false; 
		System.out.println("哲学家状态:就餐"); 
	} 
	public synchronized void putdown() {//哲学家就餐后放下筷子 
		available=true; 
		System.out.println("哲学家状态:思考"); 
		notify(); 
	} 
	 
	public void run(){ 
		takeup(); 
		putdown(); 
	} 
} 
 
public class ChopStickTest{ 
	private static ChopStick phi[] = new ChopStick[5]; 
	 
	public static void main(String args[]){ 
		for(int i=0;i<5;i++){ 
			phi[i]=new ChopStick(); 
			phi[i].start(); 
		} 
	} 
}