synchronization kid riding a swing n catching breath
Hi java gurus im a newbie in jave have a problem with my java synchronized methods.. the output should be like this
Alice: I want to ride the swing
Alice: I get to ride the swing for 5940 ms
Bob: I want to ride the swing
Charlie: I want to ride the swing
Alice: Im tired pausing for 4440 ms
Bob: I get to ride the swing for 4231 ms
Alice: I want to ride the swing
Bob: Im tired pausing for 6934 ms
Charlie: I get to ride the swing for 4204 ms
....
this is my code.. any help would be greatly appreciated. Thanks! :)
class MyRideSwing {
public void rideswing(String name) {
int mydelay = (int)(Math.random() * 5000);
System.out.println(name + ": want");
synchronized(this) {
System.out.println(name + ": I get to ride the swing for " + mydelay +" milleseconds");
try {
Thread.sleep(mydelay);
}catch (InterruptedException e){}
this.breathe(name);
}
}
public void breathe(String name) {
int mydelay = (int)(Math.random() * 5000);
System.out.println(name + ": tired" + mydelay +" milleseconds");
try {
Thread.sleep(mydelay);
}catch (InterruptedException e){}
}
}
class Kid extends Thread {
String name;
MyRideSwing p;
Kid(String name, MyRideSwing p) {
this.name = name; this.p = p;
}
public void run() {
for (int ctr=0; ctr < 500; ctr++) {
p.rideswing(name);
}
}
}
class RideASwing {
public static void main(String args[]){
MyRideSwing p = new MyRideSwing();
Kid k1 = new Kid("Alice",p);
Kid k2 = new Kid("Bob",p);
Kid k3 = new Kid("Charlie",p);
k1.start();
k2.start();
k3.start();
}
}