import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.Lock; import java.util.concurrent.CountDownLatch; class Monitor{ //lagrer det minste tallet til naa private int minstTall; private Lock laas = new ReentrantLock(); private CountDownLatch barrier; public Monitor(int antTraader, int forste){ barrier = new CountDownLatch(antTraader); minstTall = forste; } public void leggTilTall(int tall){ laas.lock(); try{ if(tall < minstTall){ minstTall = tall; } barrier.countDown(); }finally{ laas.unlock(); } } public int hentMinsteTall(){ //venter til alle traadene er ferdig med aa finne sitt minste tall try{ barrier.await(); }catch(Exception e){ System.out.println(e); } return minstTall; } }