package com.JavaInterview.Programs;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.BlockingQueue;
import
java.util.concurrent.LinkedBlockingQueue;
public class ProducerConsumer {
public static void main(String args[]) {
BlockingQueue sharedQueue = new
LinkedBlockingQueue();
Thread pd = new Thread(new Producer(sharedQueue));
Thread cs = new Thread(new
Consumer(sharedQueue));
pd.start();
cs.start();
}
}
class Producer implements Runnable {
private final BlockingQueue sharedQueue;
Producer(BlockingQueue sharedQueue) {
this.sharedQueue = sharedQueue;
}
@Override
public void run() {
for (int i = 0; i < 10; i++) {
try {
System.out.println("Produced" +
i);
sharedQueue.put(i);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
class Consumer implements Runnable {
private final BlockingQueue sharedQueue;
Consumer(BlockingQueue sharedQueue) {
this.sharedQueue = sharedQueue;
}
@Override
public void run() {
for (int i = 0; i < 10; i++) {
try {
System.out.println("Consumed" +
sharedQueue.take());
sharedQueue.put(i);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
Output :
Produced0
Produced1
Consumed0
Produced2
Consumed1
Produced3
Consumed0
Consumed2
Produced4
Consumed1
Produced5
Consumed3
Produced6
Consumed2
Produced7
Consumed3
Produced8
Consumed4
Produced9
Consumed4
No comments:
Post a Comment