FAA Agree with Steve
Hi Hari,
Hope you have got by the time, if its yours Assigmnt.
In case its not :
Then here it is ...
---------------
public class EvenOddGenTest {
/**
* @param args
*/
public static void main(
String[] args) {
NumberGenerator numGenerator = new NumberGenerator();
OddGenerator oddGen = new OddGenerator(numGenerator);
EvenGenerator evenGen = new EvenGenerator(numGenerator);
oddGen.start();
evenGen.start();
}
}
------------------
public class OddGenerator extends Thread {
public NumberGenerator numGen;
public OddGenerator(NumberGenerator numberGen) {
this.numGen = numberGen;
}
public void run() {
int i = 1;
while (i <= 9) {
numGen.printOdd(i);
i = i + 2;
}
}
}
----
public class EvenGenerator extends Thread {
public NumberGenerator numGen;
public EvenGenerator(NumberGenerator numberGen) {
this.numGen = numberGen;
}
public void run() {
int i = 2;
while (i <= 10) {
numGen.printEven(i);
i = i + 2;
}
}
}
------
public class NumberGenerator {
boolean oddPrinted = false;
public synchronized void printOdd(int number) {
while (oddPrinted == true) {
try {
wait();
} catch (InterruptedException e) {
}
}
System.out.println("NumberGenerator.printOdd() " + number);
oddPrinted = true;
notifyAll();
}
public synchronized void printEven(int number) {
while (oddPrinted == false) {
try {
wait();
} catch (InterruptedException e) {
}
}
oddPrinted = false;
System.out.println("NumberGenerator.printEven() " + number);
notifyAll();
}
}
--------
Enjoy....