java杀死挂起的线程
如何获取所有挂起的线程并杀死它们?我正在开发一个web应用程序,它启动一个名为TImer-0的线程,该线程大部分时间处于挂起状态。当我终止apache服务器时,它显示 严重:web应用程序[/LoggingMonitor]似乎已启动名为[Timer-0]的线程,但未能停止该线程。这很可能会造成内存泄漏强>
你可以在下面搜索框中键入要查询的问题!
如何获取所有挂起的线程并杀死它们?我正在开发一个web应用程序,它启动一个名为TImer-0的线程,该线程大部分时间处于挂起状态。当我终止apache服务器时,它显示 严重:web应用程序[/LoggingMonitor]似乎已启动名为[Timer-0]的线程,但未能停止该线程。这很可能会造成内存泄漏强>
# 1 楼答案
您不应该杀死线程,而是释放它使用的资源(由于gc释放了内存,所以排除了内存),并让调度程序停止它Thread.stop已弃用(与挂起一样)
如果必须手动停止线程,请使用here或here in the answers所示的标志
# 2 楼答案
您确实不希望挂起线程,因为这可能会停止整个进程的工作。即使您确实有挂起的线程,停止它们也不会有帮助
Timer-n
听起来像java.util.Timer
。这可以通过调用cancel
来清除。只要没有内存泄漏,线程最终应该被收集(被finalizer
取消)