Ani v našom programe nie je možné spustiť metódu finalizácie pre všetky 3 vlákna. “Táto metóda je vo svojej podstate nebezpečná Môže viesť k volaniu finalizátorov na živé objekty, zatiaľ čo iné vlákna súbežne s týmito objektmi manipulujú, čo môže mať za následok nevyspytateľné správanie alebo zablokovanie.”
Prečo sa vyhnúť finalizácii metódy C?
Metóda Finalize objektu by nemala volať metódu na žiadnych iných objektoch než na objektoch svojej základnej triedy. Je to preto, že ostatné volané objekty môžu byť zhromaždené v rovnakom čase ako volajúci objekt, ako napríklad v prípade vypnutia bežného jazykového modulu runtime.
Mali by sme prepísať metódu Finalize?
Metóda finailze by mala byť prepísaná, aby objekt obsahoval kód čistenia alebo zlikvidoval systémové prostriedky, ktoré by sa mali vykonať predtým, ako sa objekt pozbiera.
Čo sa stane, ak sa výnimka vyvolá metódou Finalize?
Ak je metódou finalize vyvolaná nezachytená výnimka, výnimka sa ignoruje a finalizácia tohto objektu sa skončí. … Akákoľvek výnimka vyvolaná metódou finalize spôsobí, že finalizácia tohto objektu sa zastaví, ale inak sa ignoruje.
Aký je účel metódy finalizácie?
Metóda finalize triedy Object je metóda, ktorú Garbage Collector volá vždy tesne pred odstránením/zničením objektu, ktorý je vhodný na zber odpadu, aby sa vykonalo čistenie.