Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Деструктор
#1
Что-то лазил, смотрел, увидел такое

Может кому пригодится

PHP код:
<?php 
import sun
.misc.Cleaner

class Test {
private final
Cleaner cleaner;

public
Test() {
cleaner = Cleaner.create(this, () -> {
//Destructor
});
}

}

Destructor вызывается при обработке GC, когда удаляется объект Test
Ответ
#2
Им тут не пахнет даже близко (деструктором), т.к. в момент обработки очереди фантомных ссылок, обьект уже может быть уничтожен, либо не уничтожен, как повезет (если мне память не изменяет).
Обычная фантомная ссылка с очередью и уже реализованный поток для событий этой очереди. Только вот поток интернальный (точнее АПИ, соотв. его использует внутр. часть JVM), из-за чего могут возникнуть различные интересные вещи, если повесить тяжелое событие (например: замедление очистки нативных буферов а-ля general buffer).

Намного ближе к деструктору обычная финализация, однако, через нее можно оживить обьект (в зависимости кривизны рук и задачи), ну и плюс, оно повесится на нативный поток финализации, который работает совместно с GC, из-за чего можно серьезно замедлить работу всей JVM. Из еще одного очевидного минуса - обьект не сразу уничтожается после финализации.

Если уж так нужны фантомные ссылки в своем приложении, то почему бы не использовать их напрямую? В чем, собственно, проблема?

P.S: в internal API есть еще очень много интересных штук, например, получение а-ля стека - каллеров метода через рефлекшен и закрытие от таких вещей через сенсетив, это как пример Smile
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ
#3
Pointer*Rage, да действительно, ну я увидел это в связке с Unsafe, и в документации написанно, что не является заменой финализации, не знаю я вообще в джаве не использую финалайзSmile, можно отдохнуть от ручной очистки Big Grin, а это заинтриговала мою душонку.


код

оно тронуло меня до слез.

Только для грациозных леблядей.
doc

ПС С кривыми руками GC будет лагать сам собой.

Ну и назвал тему деструктор пафос нагоняю, интрига Big Grin
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)