Uses synchronised keyword.

This commit is contained in:
Tanmay 2022-08-24 13:44:58 +01:00
parent 4f751a011e
commit c7437d90bc
4 changed files with 18 additions and 16 deletions

View File

@ -12,16 +12,17 @@ public class Consumer implements Runnable {
private Queue<UnitOfWork> store; private Queue<UnitOfWork> store;
private String name; private String name;
@Override @Override
public void run() { public void run() {
while (true) { while (true) {
if (store.size() > 0) { synchronized (store) {
store.remove(); if (store.size() > 0) {
System.out.println("Consumed: " + name + " Left units :" + store.size()); store.remove();
System.out.println("Consumed: " + name + " Left units :" + store.size());
}
}
} }
}
} }
} }

View File

@ -13,16 +13,17 @@ public class Producer implements Runnable {
private int maxSize; private int maxSize;
private String name; private String name;
@Override @Override
public void run() { public void run() {
while (true) { while (true) {
if (store.size() < maxSize) { synchronized (store) {
store.add(new UnitOfWork()); if (store.size() < maxSize) {
System.out.println("Produced: " + name + " Left units :" + store.size()); store.add(new UnitOfWork());
System.out.println("Produced: " + name + " Left units :" + store.size());
}
}
} }
}
} }
} }