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");
}
} }