Posted By: Rat (prilis mnoho her) on 'CZprogram' Title: Re: garbage collectoryyy Date: Thu Nov 4 11:13:34 2004 > > proc by implementace nemohla vypadat ala Quasimodo. Tzn., v okamziku > > dereference na nulu se objekt znici okamzite a neceka se na GC. (mozna > jsem > > ted uplne mimo debatu ;) ). Dokazu si predstavit, ze presunuti vsech > > finalizeru do jedineho threadu muze mit jiste vyhody, ale to stejne neni u > > > Javy uplne pravda, ne? > > OK, mas pravdu, pokud by GC byla optimalizovana timto zpusobem, pak by mohlo > vzniknout pravidlo "zdroje v destruktoru uvolnovat muzete, ale pouze pokud > jste si jisti, ze vas objekt nemuze zustat vzajemne referencovany s jinym > nepouzivanym objektem, nebot pak je treba cekat na GC, ktery nemusi prijit > nikdy". Proc? Priznam se, ze neznam presne detaily fungovani GC, nicmene ma predstava je, ze v okamziku zavolani destruktoru neni reference ani z jinych nepouzivanych objektu. Tzn. v pripade puvodni cross-reference se nejdrive nastavi pointer z druheho objektu na prvni na NULL a pote se teprve zavola destruktor (ci jakkoli to nazveme) prvniho objektu. V opacnem pripade by byly destruktory skutecne nepouzitelne ;) ... pochopitelne v popsanem pripade s onou nekonsistenci musi onen destruktor nejakym zpusobem pocitat (ze mu nekdo za jeho zady prenastavi pointer apod.). Krysa rat@atrey.karlin.mff.cuni.cz Jsem Krysa http://atrey.karlin.mff.cuni.cz/~rat/