Nawet w naszym programie nie jest w stanie uruchomić metody finalizacji dla wszystkich 3 wątków. „Ta metoda jest z natury niebezpieczna Może skutkować wywoływaniem finalizatorów na aktywnych obiektach, podczas gdy inne wątki jednocześnie manipulują tymi obiektami, co skutkuje nieprawidłowym zachowaniem lub zakleszczeniem.”
Dlaczego należy unikać metody finalizacji C?
Metoda Finalize obiektu nie powinna wywoływać metody na żadnych obiektach innych niż jego klasa bazowa. Dzieje się tak, ponieważ pozostałe wywoływane obiekty mogą być zbierane w tym samym czasie, co obiekt wywołujący, tak jak w przypadku zamknięcia środowiska uruchomieniowego języka wspólnego.
Czy powinniśmy zastąpić metodę Finalize?
Metoda finailze powinna zostać przesłonięta, aby obiekt zawierał kod czyszczący lub usuwał zasoby systemowe, które należy wykonać, zanim obiekt zostanie wyczyszczony.
Co się stanie, jeśli wyjątek zostanie zgłoszony przez metodę Finalize?
Jeśli nieprzechwycony wyjątek zostanie zgłoszony przez metodę finalize, wyjątek jest ignorowany, a finalizacja tego obiektu kończy się. … Każdy wyjątek zgłoszony przez metodę finalize powoduje zatrzymanie finalizacji tego obiektu, ale w przeciwnym razie jest ignorowany.
Jaki jest cel finalizacji metody?
Metoda finalize klasy Object jest metodą, którą odśmiecacz zawsze wywołuje tuż przed usunięciem/niszczeniem obiektu, który kwalifikuje się do zbierania śmieci, aby wykonać czynność czyszczenia.