public class road { public static void main(String []args) { car c=new car(); driver d =new driver(c); passenger p =new passenger(c); new Thread(d).start(); new Thread(p).start();
} } class car { synchronized public void sleep() { try{ wait(); } catch(Exception e) { } } synchronized public void week() { notify(); } }
class passenger implements Runnable { car c; public passenger() { } public passenger(car c) { this.c=c; } public void run() { while(true) { Thread.yield(); try{ Thread.sleep(3000); }catch(InterruptedException ie) { } System.out.PRintln("a passenger go on"); c.week(); System.out.println("waiting stop and sleep..."); c.sleep();
} }
}
class driver implements Runnable { private car c; public driver() { } public driver(car c) { this.c=c; } public void run() { while(true) { System.out.println("wait a passenger......."); c.sleep(); try{ Thread.sleep(3000); }catch(InterruptedException ie) { } Thread.yield(); try{ Thread.sleep(100); }catch(InterruptedException ie) { } c.week(); System.out.println(" passenger week and go ");