Lecture overview -- Keyboard shortcut: 'u'  Previous page: Wait og Notify idioms -- Keyboard shortcut: 'p'  Next page: Skedulerende og synkroniserende metoder: oversigt -- Keyboard shortcut: 'n'  Lecture notes - all slides and notes together  slide -- Keyboard shortcut: 't'  Help page about these notes  Alphabetic index  Course home  Page 38 : 41
Forelæsningsnoter i Objekt-orienteret Programmering
Samtidighed i Java
Eksempel på et program med synkronisering: Synkroniseret Sangkor

Vi vender nu tilbage til sangkor eksemplet. I vores første møde med sangkoret blev de enkelte strofer sunget hulter til bulter. I det næste eksempel justerede vi på prioriteterne, således at den ene sang blev sunget før den anden. Dette var dog ikke nogen garanteret egenskab, men blot et udfald af skeduleringsalgoritmens virkemåde. Nu ønsker vi at lave en version af sangkoret, som skiftevis synger et vers af den ene og den anden sang. (Stadig gentager vi blot samme vers flere gange). Versionen, som vi udvikler her skal garantere, at den skiftevise rækkefølge mellem versene opnås

I SangKor eksemplet ønsker vi nu en synkroniseret opførsel, således at der skiftevis lyder et vers fra hver sang

/user/normark/courses/prog1/prog1-01/sources/java/noteEksempler/Sangkor3.javaKlassen Skjald som på disciplineret vis indtager og frigiver scenen.

Klassen Skjald som på disciplineret vis indtager og frigiver scenen.

/user/normark/courses/prog1/prog1-01/sources/java/noteEksempler/Sangkor3.javaKlassen Dirigent som synkroniserer to Skjalde.

Klassen Dirigent som synkroniserer to Skjalde. Betingelsen i while løkken siger at scenen enten ikke er ledig eller at det er den anden Skjald's tur. Under disse omstændigheder skal der ventes

/user/normark/courses/prog1/prog1-01/sources/java/noteEksempler/Sangkor3.javaKlassen Sangkor3, som starter to Skjalde og en Dirigent.

Klassen Sangkor3, som starter to Skjalde og en Dirigent.

/user/normark/courses/prog1/prog1-01/sources/java/noteEksempler/Sangkor3OutputOutput fra ovenstående program.

Output fra ovenstående program. Som det var ønsket ser vi at vers fra de to sange synges på skift.

/user/normark/courses/prog1/prog1-01/sources/java/noteEksempler/Sangkor3.javaDet samlede program med klasserne Sangkor3, Skjald og Dirigent.

Det samlede program med klasserne Sangkor3, Skjald og Dirigent.

Go to exerciseOpgave om synkroniserede skjalde