import java.util.concurrent.CountDownLatch; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class Monitor { private int minsteTall; private Lock laas = new ReentrantLock(); private CountDownLatch cdl; public Monitor(int minsteTall, int antTraader){ this.minsteTall = minsteTall; cdl = new CountDownLatch(antTraader); } public void settTall(int tall){ laas.lock(); try{ if(tall < minsteTall) minsteTall = tall; cdl.countDown(); } finally { laas.unlock(); } } public int hentMinste(){ try { cdl.await(); } catch (Exception e) {} laas.lock(); try{ return minsteTall; }finally{ laas.unlock(); } } }