Page 23 : 41
Forelæsningsnoter i Objekt-orienteret Programmering
Samtidighed i Java
* Introduktion og motivation
Vores programmering indtil nu...
Naturlig samtidighed
Afgrænsning
Terminologi
* Begreber og problemstillinger
Grundliggende antagelser
Oversigt over væsentlige problemstillinger
Samtidighed i forhold til OOP
* Tråde i Java
Trådbegrebet i Java
Interfacet Runnable
Trådskabelse gennem subklasse af Thread
Trådskabelse ved implementering af Runnable
Egenskaber af klassen Thread
Eksempel på et program med tråde: Skjald
Mulige tilstande af en tråd i Java
Tråde i forhold til Swing
* Skedulering af tråde i Java
Indbyrdes fremdrift i tråde
Skedulering baseret på prioriteter i Java
Eksempel på prioriteter: Prioriterede sange
Tommelfingerregler for prioritering
* Synkronisering af tråde i Java
Interferens mellem tråde
Kritiske regioner
Synkroniserede metoder
Eksempel på synkronisering: SynkroniseretKonto
Detaljer om synkroniserede metoder
Trådsikre klasser
Java's synchronized kommando
Synkroniserede konti via synchronized kommandoer
Monitorer
Synkronisering: For lidt og for meget
Eksempel på et program med synkronisering: Producent og Forbruger
Wait og notify
Wait og Notify idioms
Eksempel på et program med synkronisering: Synkroniseret Sangkor
Skedulerende og synkroniserende metoder: oversigt
* Trådgrupper
Trådgrupper
Tommelfingerregler for prioritering
Efter hvilke retningslinier skal man tildele prioriteter til tråde?
Retningslinier
Tråde som skal reagere på brugerinput, f.eks. event listeners, bør tildeles en høj prioritet
Tråde med høj prioritet bør ikke varetage opgaver med lang køretid
Opgaver med lang køretid bør uddelegeres til en ny tråd af lavere prioritet