import java.util.concurrent.locks.*; class MinBeholderMonitor { MinBeholder beholder; Lock laas = new ReentrantLock(); Condition ikkeLengerTom = laas.newCondition(); public MinBeholderMonitor(MinBeholder beholder){ this.beholder = beholder; } public void leggPaa(int tall){ laas.lock(); try { beholder.leggPaa(tall); ikkeLengerTom.signal(); } finally{ laas.unlock(); } } public void trekkFra(int tall){ laas.lock(); try { if (beholder.hentVerdi() < 1){ ikkeLengerTom.await(); } beholder.trekkFra(tall); } catch(Exception e){ } finally{ laas.unlock(); } } public int hentVerdi(){ return beholder.hentVerdi(); } }