import java.util.ArrayList;
import java.util.List;
import java.util.*;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class Fabrika {
int max_capacity = 5;
List products = new ArrayList<>();
static Lock lock = new ReentrantLock();
public Fabrika(int capacity) {
max_capacity = capacity;
}
public void produce(String s) throws InterruptedException{
while(true) {
lock.lock();
if (products.size() < max_capacity) {
System.out.println("Produced: " + s);
products.add(s);
lock.unlock();
break;
}
lock.unlock();
}
}
public void consume() throws InterruptedException{
while(true) {
lock.lock();
if(products.size() > 0) {
String s = products.remove(0);
System.out.println("Consumed: " + s);
lock.unlock();
break;
}
lock.unlock();
}
}
}