public class EvenOddThreadExample {
public static void main(String[] args) {
SharedPrinter sp = new SharedPrinter();
Thread t1 = new Thread(new OddNumProducer(sp, 10));
Thread t2 = new Thread(new EvenNumProducer(sp,10));
t1.start();
t2.start();
}
}
class SharedPrinter {
boolean evenFlag = false;
public void printOddNumber(int number) {
synchronized(this) {
while (evenFlag) {
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println("Odd Number : " +
number);
evenFlag = true;
notify();
}
}
public void printEvenNumber(int number) {
synchronized(this) {
while (!evenFlag) {
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println("Even Number : " +
number);
evenFlag = false;
notify();
}
}
}
class OddNumProducer implements Runnable {
SharedPrinter sp;
int number;
public OddNumProducer(SharedPrinter s, int num) {
this.sp = s;
this.number = num;
}
@Override
public void run () {
for (int i=1; i <= number; i = i+2) {
sp.printOddNumber(i);
}
}
}
class EvenNumProducer implements Runnable {
SharedPrinter sp;
int number;
public EvenNumProducer(SharedPrinter s, int num) {
this.sp = s;
this.number = num;
}
@Override
public void run() {
for (int i = 2; i <= number; i=i+2) {
sp.printEvenNumber(i);
}
}
}
[Multithreading Interview Questions]
We recommend you take Big Data Hadoop class room training at eMexo Technologies in electronic city, Bangalore to learn more about Big Data Hadoop.
0 Comments:
Post a Comment