Samtidighed i Java
- slide 36 : 41
Wait og notify
Wait og notify, og varianter af disse, er metoder i klassen Object
Det betyder at ethvert objekt umiddelbart kan aktivere wait og notifiy
Klassen Object i pakken java.lang
Metoden wait i klassen Object
Metoden notify i klassen Object
Tråd tilstande
Wait
Skal forekomme i en synkroniseret metode i det objekt, hvori andre tråde kan kalde notify
Bringer tråden i en blokeret tilstand, hvor det venter på et notify signal
Frigiver låsen på det objekt hvori wait forekommer
Overgiver kontrollen til et andet objekt via mekanismerne i skedulerings algoritmen
Varianterne wait(long) og wait(long,int) venter højst i et tidsrum, der er angivet af parametrene
Notify
Skal forekomme i en synkroniseret metode i det objekt, hvori andre tråde kan kalde wait
Vækker højst én tråd, som venter i dette objekt
Udfører dog resten af den synkroniserede metode inden vækningen
Varianten NotifyAll giver alle tråde, som venter, en chance for at komme igang. - Det lykkes imidlertid kun for én af de ventende