Что происходит с TimerTask после выполнения? - PullRequest
1 голос
/ 14 сентября 2009

Что происходит с классом, который расширяет TimerTask после выполнения метода run? Значение myTask равно нулю или что после выполнения?

MyTask myTask = new MyTask();

Ответы [ 2 ]

1 голос
/ 14 сентября 2009

Если вы запустили его из метода, который с тех пор завершился (и нигде не ссылался на него, например, в переменной-члене объекта, который еще жив), он будет очищен сборщиком мусора.

Нет необходимости устанавливать его в ноль, если Задача не хранит ссылки на огромные объемы памяти.

Если вам действительно нужно отменить ссылку на Задачу, вам нужно добавить вызов в конце метода run (), чтобы отменить его, откуда бы вы ни ссылались.

0 голосов
/ 14 сентября 2009

Ничего. Вы можете проверить исходный код класса Timer, чтобы понять, что на самом деле происходит под капотом, когда запланировано TimerTask.

...