ai = p j aij p =1 j p j = P( B = B j ) · j =1 j =1 oodatav rahaline tulem riski tingimustes On antud (hinnatud) keskkonna olekute realiseerumise tõenäosused · Alternatiivi hinnanguks on tulemi keskväärtus Otsustuste puu Mitmesammuline otsustus riski tingimustes Graafiline kirjeldus: ruuduke on otsustus, temast väljuvad harud on alternatiivid; ring on keskkond, temast väljuvad harud on antud tõenäosusega realiseeruvad olekud Haru lõpeb kvantitatiivse tulemiga Otsustaja kasulikkuse funktsioon Riski tingimustes tehtud otsustused ei arvesta otsustaja riskivalmidust Kasulikkuse funktsiooni muut näitab muutusi otsustaja eelistustes Mõtteline eksperiment: kas otsustaja eelistaks kindlat väiksemat tulemit või mingi
} vahel } TIMED_WAITING Ei sekkunud teise lõime tegemistesse (otseselt) Katkestamine - t3.interrupt() Oodata kuni teine on lõppenud - t3.join() c = c++ c=c c++ int temp = c; // temp = 0 c++; // c=1 c = temp; // c = 0 Tahaks kasutada samu andmeid Lõimede vastastikune mõju (thread interference); ka üks direktiiv võib JVM mõttes olla mitmesammuline: 1. Näiteks c++ korral 3 sammu 2. Kui teine lõim teeb c-- Mälu terviklikkus (memory consistency): 1. kui erinevate lõimede "arusaam" andmetest ei ole sama 2. juhtub-varem seos (happens-before) Lahenduseks on sünkroniseerimine Sünkroniseerimine · Anda ühele lõimele juurdepääs ja blokeerida samal ajal teisi · "Lukustada" ühe lõime jaoks · Java koodi saab sünkroniseerida kahel viisil: meetodi sünkroniseerimine - synchronized void meetod()