diff --git a/os/code/os/src/main/java/com/scaler/producerconsumer/Consumer.java b/os/code/os/src/main/java/com/scaler/producerconsumer/Consumer.java index b37dc96..4822c7a 100644 --- a/os/code/os/src/main/java/com/scaler/producerconsumer/Consumer.java +++ b/os/code/os/src/main/java/com/scaler/producerconsumer/Consumer.java @@ -12,16 +12,17 @@ public class Consumer implements Runnable { private Queue store; private String name; - @Override public void run() { - while (true) { - if (store.size() > 0) { - store.remove(); - System.out.println("Consumed: " + name + " Left units :" + store.size()); + while (true) { + synchronized (store) { + if (store.size() > 0) { + store.remove(); + System.out.println("Consumed: " + name + " Left units :" + store.size()); + } + } } - } - + } - + } diff --git a/os/code/os/src/main/java/com/scaler/producerconsumer/Producer.java b/os/code/os/src/main/java/com/scaler/producerconsumer/Producer.java index acefd12..b360808 100644 --- a/os/code/os/src/main/java/com/scaler/producerconsumer/Producer.java +++ b/os/code/os/src/main/java/com/scaler/producerconsumer/Producer.java @@ -13,16 +13,17 @@ public class Producer implements Runnable { private int maxSize; private String name; - @Override public void run() { - while (true) { - if (store.size() < maxSize) { - store.add(new UnitOfWork()); - System.out.println("Produced: " + name + " Left units :" + store.size()); + while (true) { + synchronized (store) { + if (store.size() < maxSize) { + store.add(new UnitOfWork()); + System.out.println("Produced: " + name + " Left units :" + store.size()); + } + } } - } - + } - + } diff --git a/os/code/os/target/classes/com/scaler/producerconsumer/Consumer.class b/os/code/os/target/classes/com/scaler/producerconsumer/Consumer.class index ed16821..e35dd5b 100644 Binary files a/os/code/os/target/classes/com/scaler/producerconsumer/Consumer.class and b/os/code/os/target/classes/com/scaler/producerconsumer/Consumer.class differ diff --git a/os/code/os/target/classes/com/scaler/producerconsumer/Producer.class b/os/code/os/target/classes/com/scaler/producerconsumer/Producer.class index 3761e03..c554525 100644 Binary files a/os/code/os/target/classes/com/scaler/producerconsumer/Producer.class and b/os/code/os/target/classes/com/scaler/producerconsumer/Producer.class differ