Java Programs[Important]
- WRITE A JAVA
PROGRAM that correctly implements Producer-Consumer problem using the concept
of Inter Thread Communication.
-
- Program :
-
- class Q
- {
- int n;
- boolean valueSet = false;
-
- synchronized int
get()
- {
- if (!valueSet)
- try
- {
- wait();
- }
- catch (InterruptedException e)
- {
- }
-
- System.out.println(“Got:
“ + n);
- valueSet = false;
- notify();
- return n;
- }
-
- synchronized void
put(int n)
- {
- if (valueSet)
- try
- {
- wait();
- }
- catch (InterruptedException e)
- {
- }
-
- 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()
{ 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()
- {
- while(true)
- {
- q.get();
- }
- }
- }
-
- class PC
- {
- public
static void main (String args[ ])
- {
- Q q = new Q();
- new Producer(q);
- new
Consumer(q);
-
- System.out.println(“Press
Ctrl-C to stop”);
- }
- }