#java #multithreading #tomcat
#java #многопоточность #tomcat
Вопрос:
В настоящее время я запускаю некоторые потоки, такие как scheduler и socketserver, такие как mina, через ServletContextListerner. Но после этого tomcat не может быть корректно выключен. Что мне делать, освободить сокет или прервать поток.
public class ServerListener implements ServletContextListener{
public void contextDestroyed(ServletContextEvent arg0){
//what should i do here
}
public void contextInitialized(ServletContextEvent arg0){
new Thread(new Runnable(){
public void run(){
SocketMain.main(null);
}
}).start();
new Thread(new Runnable(){
public void run(){
SccheduleMain.main(null);
}
}).start();
}
}
Ответ №1:
Прежде всего используйте thread.setDaemon(true)
, чтобы сообщить JVM сделать поток потоком демона. Тогда это не предотвратит завершение работы Tomcat.