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

Wait og notify er primitiverne til som tillader os at programmere synkroniserede tråde. Vi ser her nærmere på disse primitiver

Wait og notify, og varianter af disse, er metoder i klassen Object

Det betyder at ethvert objekt umiddelbart kan aktivere wait og notifiy

 

  • 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