在我运行在 Tomcat 7.x 下的应用程序中,一个 servlet 启动了一个新线程。在此线程中,我创建了一个套接字(在端口 8081 上),它等待客户端连接 (serverSocket.accept()
)。
取消部署应用程序时,不会终止线程。这就是为什么当我重新部署应用程序时,我的新套接字无法在端口 8081 上监听,因为以前的套接字仍在监听它。我还在控制台日志中发现“内存泄漏”。
我试图在我的线程上setDaemon(true)
但它没有解决问题。我该怎么办?
非常感谢。
最佳答案
在 destroy() 方法中关闭套接字。阻塞在 accept() 中的线程将抛出 IOException:让它从那里退出。
关于multithreading - 在 Tomcat 中用打开的套接字杀死线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21393158/