Forelæsningsnoter i Objekt-orienteret Programmering Samtidighed i Java
Indbyrdes fremdrift i tråde
Vi vil nu se på de mekanismer, som afgør hvilken tråd, der bliver udført på computeren på det givet tidspunkt
Hvilken tråd skal på et givet tidspunkt udføres på en computer med kun én CPU?
Kontrollen af den tidslige og indbyrdes ordning af en mængde handlinger i forskellige tråde kaldes skedulering
Skedulering betyder at arrangere eller kontrollere en mængde handlinger i forhold til hinanden i tidslig rækkefølge.
I forhold til samtidighed indebærer skedulering beslutningen om hvilken tråd der skal udføres på computerens CPU på
et bestemt tidspunkt
Mulige skeduleringsteknikker:
Round-robin: Tråde aktiveres cyklisk og skiftevis
Et retfærdighedsprincip hvor alle tråde regelmæssigt får chancen for at køre
Prioriteret skedulering: Højst prioriterede tråde aktiveres først
Kan føre til udsultning af lavt prioriterede tråde
Prioritering baseret på et estimat af køretid
Eksempel: 'shortest job first'
Skedulering af tråde i et Java program er baseret på prioriteter
Hver tråd i et Java program har tilknyttet et prioritetstal