import java.util.ArrayList; import java.util.List; public class Fabrika { int max_capacity = 5; List products = new ArrayList<>(); public Fabrika(int capacity) { max_capacity = capacity; } public void produce(String s) throws InterruptedException{ while(true) { synchronized (this) { while(products.size() == max_capacity) { wait(); } System.out.println("Produced: " + s); products.add(s); notify(); Thread.sleep(1000); } } } public void consume() throws InterruptedException{ while(true) { synchronized (this) { while(products.size() == 0) { wait(); } String s = products.remove(0); System.out.println("Consumed: " + s); notify(); Thread.sleep(1000); } } } }