java - 当我有套接字和线程时如何彻底停止tomcat

标签 java multithreading tomcat

目前我通过 ServletContextListerner 启动一些线程,例如调度程序和 socketserver,例如 mina。但是此后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();
         }

}

最佳答案

首先使用thread.setDaemon(true) 告诉JVM 将线程设为守护线程。那么它将不会阻止 Tomcat 关闭。

关于java - 当我有套接字和线程时如何彻底停止tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5799125/

相关文章:

java - 取决于方法和@Factory

java - 无法在 Eclipse 中使用库制作可执行 JAR 文件

java - 如何在js上设置自动聚焦到Java小程序

java - 使用 java 的 apache spark 中的决策树实现问题

Java异步方法调用/后台处理

java - 非法线程状态异常

c - 线程工作不正常

java - 部署 jar Tomcat 8

tomcat - 如何将Tomcat的端口从8080改成80?

jsp - 图片未加载到网页中并显示 404 错误