Samtidighed i Java
- slide 21 : 41
Skedulering baseret på prioriteter i Java
Skedulering af tråde i Java
Java udfører altid en af de kørbare tråde, som har højste prioritet
Der kan være flere kørbare tråde som alle har højste prioritet
En tråd T kører indtil
En kørbar tråd S med højere prioritet opstår (ny tråd S, prioritet(S) hæves, prioritet(T) sænkes)
T overgiver frivilligt kontrollen med sleep(), yield(), wait() eller lignende
T involveres i blokerende input/output
T's run metode er kørt til ende
På systemer med
time slicing:
tråden har været kørt i et fastlagt tidsinterval
Kontrollen overgives til en tråd med højeste prioritet
Preempting:
En tråd med højere prioritet vil overtage kontrollen umiddelbart fra en lavere prioriterede tråd
Deterministisk:
Skeduleringen varetages af en fast algoritme, som ikke forsøger at simulere nogen form for tilfældighed eller uregelmæssighed
Metoden getPriority i klassen Thread
Metoden setPriority i klassen Thread