import java.util.ArrayList; import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.Lock; public class KnivMonitor { private Lock laas = new ReentrantLock(); private ArrayList knivHaug = new ArrayList(); public void settInn(Kniv kniv) { laas.lock(); try { knivHaug.add(kniv); } finally { laas.unlock(); } } public Kniv[] taUtTo() { laas.lock(); try { if (knivHaug.size() > 1) { Kniv[] kniver = new Kniv[2]; kniver[0] = knivHaug.remove(0); kniver[1] = knivHaug.remove(0); return kniver; } else { return null; } } finally { laas.unlock(); } } public int antall() { return knivHaug.size(); } }