message between threads
How do I send a message from Consumer to Producer when Consumer's i
reaches 50
The message should be displayed and notify should be stopped to do
further execution.
--------------------------------------------------------------------------------------------------------------------------------------
class Q {
int n;
int b;
boolean valueSet = false;
synchronized int get(int b) {
while(!valueSet)
try {
wait();
} catch(InterruptedException ie) {
System.out.println("Exception caught");
}
this. b = b;
System.out.println("got n : " + n);
System.out.println("got b : " + b);
valueSet = false;
notify();
return n;
}
synchronized void put(int n) {
while(valueSet)
try {
wait();
} catch(InterruptedException ie) {
System.out.println("Exception caught");
}
this.n = n;
valueSet = true;
System.out.println("Put: " + n);
notify();
}
}
class Producer implements Runnable {
Q q;
Producer(Q q) {
this.q = q;
new Thread(this, "Producer").start();
}
public void run() {
//throw new UnsupportedOperationException("Not supported
yet.");
int i = 0;
while(true) {
q.put(i++);
}
}
}
class Consumer implements Runnable {
Q q;
Consumer(Q q) {
this.q = q;
new Thread(this, "Consumer").start();
}
public void run() {
//throw new UnsupportedOperationException("Not supported
yet.");
int i=100;
while(true) {
q.get(i);
i = i-1;
}
}
}
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Q q = new Q();
new Producer(q);
new Consumer(q);
System.out.println("Press Control-c to stop");
}
}
--------------------------------------------------------------------------------------------------------------------------------------
Any help
Thanks
Pradyut
http://pradyut.tk
India