Objektorienteeritud JAVA 2.kontrolltöö konspekt
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
Miks selliseid meetodeid võimalusel vältida? Vastus: Võivad põhjustada deadlock'i
19. Mis vahe on sisemisel ja välimisel sünkroniseerimisel? Leidke mõlema näide viimasest
praktikumitööst, et veenduda oma arusaamises (näidislahendus Moodles).
Sisemine sünkroniseerimine – objekt hoolitseb ise, et teda oleks turvaline lõimedes kasutada
while(true)