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/

Search the boards