Objektorienteeritud JAVA 2.kontrolltöö konspekt
17. Kirjeldage, kuidas tekib deadlock ja kuidas see on seotud einestavate filosoofide probleemiga?
Üks lõim lukustab objekti monitori ja kutsub välja teise lõime, mis soovib sama monitori kasutada. Üks
ootab teise taga, kumbki ei saa jätkata.
Sama einestavate filosoofide korral: iga filosoof tahab einestamiseks kaks kahvlit. Seega iga filosoof ei
saa hakata sööma, kuni vasakpoolne kahvel vabaneb.
18. Milline praktiline kasu on sellest, et objekti monitori lukk on taassisenetav (reentrant)?
Java objektide monitorid on taassisenetavad (reentrant).
Kui üks lõim paneb objekti monitori lukku ja kutsub sama lõime piires välja meetodi, mis seda uuesti
lukustab, siis deadlock'i ei teki, kuna sama lõim võib uuesti siseneda
Enamasti kasulik
Ohtlik juhul kui sama lõim teeb mitu omavahel vastuolus olevat tegevust
Tulnukmeetodid on sellised, mille üle te ei oma kontrolli – nt mõni ülekirjutatav meetod objektil, mida
kasutaja võib muuta