Posted By: PaJaSoft (Menhir Mover & Linux Man) on 'CZprogram' Title: Re: garbage collectoryyy Date: Fri Dec 3 16:40:26 2004 > Domnivas se, ze by mel GC uvolnost objekty v okamziku, kdy refcount > klesne na nulu nebo ne? Resp. ze by na kazdy kazdy ubytek reference > mela byt navesena kontrola, zda refcount neni nahodou nula, pripadne > pokud nam objekt nedrzi nejaka temer dereferencovana cross-reference? Ano v tomto okamziku MUZE, nikoli musi... > Pokud ano, nekdo jiny namital, ze by to bylo dost drahe, kazdopadne > jsem o tom nic nepsal. Proto taky GC zpravidla bezi jako Thread s nejnizsi prioritou (nejsem si jist, zda-li jiz zmineny System.gc() neudela pouze to, ze tu prioritu zvysi) a postupne prochazi ty refcounty, pokud je 0, zrusi objekt... co na tom, ze dneska stihl zrusit 2 objekty, za tyden dalsi dva apod... Aspon takto to do dnes vidim ja...:-) > Pokud ne, znamena to, ze nechavame na GC, kdy zasahne, tudiz doba, > kdy dojde k zniceni objektu (a volani pripadneho destructoru, neni > predvidatelna, pak nelze na vcasne volani destruktoru spolehat. Pokud destruktorem myslis metodu finalize() tridy, tak dle napr. Ivor Horton's Beginning Java 2 SDK 1.4 Edition (ISBN 0-7645-4365-2) str. 230 predposledni ostavec - skutecne neni zaruceno zavolani teto metody ze strany JVM. Jednoduse, pokud je refcount=0, GC nahodou ten objekt prochazi a program bezi dal, tak finalize je zavolano, pokud objekt zije az do ukonceni JVM, tak na finalize() se rada NIKDY nedostane. Na druhou stranu vyvolani finalize() vsech rusenych objektu muzeme trochu pomoci, pro zmenu pomoci System.runFinalization(); Opet ale neni zaruceno, ze skutecne se ty metody zavolaji... ..s usmevem a laskou jde vsechno lip, nezapominejte na to v zivote.. PaJaSoft