import java.util.concurrent.*; // Tre Semaphorer init til 1 d kan gå i vranglås class Oppg1 { // felles data og metoder A Semaphore [] a= new Semaphore[3]; 1 public static void main(String [] args) { Oppg1 p = new Oppg1(); p.utfoer(3); } void utfoer (int antT) { for (int i = 0; i 0) { // kalles når tråden er startet System.out.println(" Tråd PRE:"+ind); try { a[ind].acquire(); a[(ind+1)%3].acquire(); } catch (Exception e) {return;} System.out.println(" Tråd POST:"+ind); a[ind].release(); a[(ind+1)%3].release(); } System.out.println(" Tråd POST:"+ind+" TERMINERER"); } // end run } // end indre klasse Arbeider //Mulig vranglås acquire (ingen greier å si release(): // t0: 0 1 (venter på t1 for å få 1) // t1: 1 2 (venter på t2 for å få 2) // t2: 2 0 (venter på t0 for å få 0) } // end class Oppg1