Oppgaver uke 10

 

Oppgave 1:

  1. Når er det fordelaktig å benytte CountDownLatch? Og når er det fordelaktig å benytte CyclicBarrier? Diskuter forskjellen mellom de 2. 
  2. Du ønsker å skrive ut noe på skjermen hver 5. gang en oppgave er utført, uavhengig av hvilke tråder som har gjort oppgaven. Hva slags barriere ville du benyttet her?

Oppgave 2:

  1. Lag et program som starter opp 8 tråder. Alle trådene skal si hei 2 ganger, men ingen av trådene har lov til å si hei den andre gangen før alle trådene er ferdig med å si hei den første gangen.
  2. Utvid deloppgave 1, nå skal trådene skrive ut hei 3 ganger. En tråd kan ikke skrive ut hei den tredje gangen, før alle trådene er ferdig med å skrive hei ut den andre gangen.

Oppgave 3:

Endre oppgave 2 fra forrige uke, slik at personen som fyller opp brusautomaten blir ferdig når alle kundene er ferdig. 

Oppgave 4:

Skriv et program som starter noen tråder (akkurat hvor mange bestemmer du selv). Du skal lage en klasse Deltaker(Tråder), og de konkurrerer i å sende det største tallet til monitoren (Tallet de sender skal genereres tilfeldig, og skal være positive heltall). Den tråden som har det største tallet skal slutt skrive ut at den har vunnet konkurransen, men for at en tråd skal vite om den har skrevet ut det høyeste tallet må den vente til alle trådene er ferdig. Monitoren trenger to metoder, en for for å ta imot et nytt tall ,og en for å returnere det. Husk at kun en tråd kan endre på data om gangen.

Publisert 29. mars 2023 23:39 - Sist endret 29. mars 2023 23:39