有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java杀死挂起的线程

如何获取所有挂起的线程并杀死它们?我正在开发一个web应用程序,它启动一个名为TImer-0的线程,该线程大部分时间处于挂起状态。当我终止apache服务器时,它显示 严重:web应用程序[/LoggingMonitor]似乎已启动名为[Timer-0]的线程,但未能停止该线程。这很可能会造成内存泄漏


共 (2) 个答案

  1. # 1 楼答案

    您不应该杀死线程,而是释放它使用的资源(由于gc释放了内存,所以排除了内存),并让调度程序停止它Thread.stop已弃用(与挂起一样)
    如果必须手动停止线程,请使用herehere in the answers所示的标志

  2. # 2 楼答案

    您确实不希望挂起线程,因为这可能会停止整个进程的工作。即使您确实有挂起的线程,停止它们也不会有帮助

    Timer-n听起来像java.util.Timer。这可以通过调用cancel来清除。只要没有内存泄漏,线程最终应该被收集(被finalizer取消)