Я использую задание таймера в моем веб-приложение, и в обработчике onContextDestroyed, я использую следующий код, чтобы сделать все пустое:Проблема с таймером Задача в Java
System.out.println("contextDestroyed - fileWatcherTask:"+fileWatcherTask);
System.out.println("contextDestroyed - mytimer:"+mytimer);
fileWatcherTask.cancel();
mytimer.cancel();
System.gc();
if (fileWatcherTask != null) {
System.out.println("fileWatcherTask is not null");
fileWatcherTask=null;
}
if (mytimer!=null)
{
System.out.println("mytimer is not null");
mytimer=null;
}
System.out.println("contextDestroyed - logTimerTask After invoking cancel mytimer: "+mytimer);
System.out.println("contextDestroyed - logTimerTask After invoking cancel fileWatcherTask: "+fileWatcherTask);
Однако иногда печатает в нуль и иногда это не так. Может ли кто-нибудь сказать мне, в чем проблема? И если это не обнулить я получаю следующее Catalina войти выход:
жестки: веб-приложение [/ LoggingMonitor], кажется, начал нить с именем [Таймер-1], но не смог остановить его. Это очень , вероятно, создаст утечку памяти.