java - 线程在 Tomcat 中启动和停止失败。发生了什么?

标签 java multithreading tomcat operating-system

我有一个正在运行的 java 多线程程序。我在 tomcat 服务器上运行它。当线程仍在运行时,一些正在执行的任务,一些仍在等待某些东西返回以及各种各样的东西,假设我在这种情况下突然停止服务器..当我这样做时,我在 tomcat 终端上收到警告表示名为 x 的线程仍在运行并且服务器正在停止,因此这可能会导致内存泄漏。操作系统实际上想在这里告诉我什么?有人可以帮我理解这个吗??我在我的系统上多次运行这个程序,我已经突然停止服务器 3 次,每次我这样做时我都会看到这条消息。我运行我的服务器了吗? (我的意思是我的系统)。我做了什么很危险的事吗????

请帮忙。

提前致谢!

最佳答案

when i do i get a warning on the tomcat terminal saying a thread named x is still running and the server is being stopped so this might lead to a memory leakage. what is the OS actually trying to tell me here?

Tomcat(不是操作系统)从这个额外的线程中推测您的代码的某些部分 fork 了一个可能无法正确清理自身的线程。它认为这个线程可能不止一次被 fork ,如果您的进程运行很长时间,它可能会填满可用内存,这会导致 JVM 锁定或至少变得非常慢。

have i ruined my server? (i mean my system). did i do something very dangerous????

不,不。这是关于tomcat进程本身的。它担心这种内存泄漏可能会阻止其作为软件完成工作的能力——仅此而已。除非您看到不止一个线程,或者直到您看到服务器出现内存问题(为此使用 jconsole),否则我只会将其视为警告和警告。

关于java - 线程在 Tomcat 中启动和停止失败。发生了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23040120/

相关文章:

java - JVM 在创建线程并在其中执行网络操作时突然关闭

flockfile函数可以用于进程吗

c++ - 如何通过 std::call_once 使用重载函数

python - 如果从后台线程调用私有(private)槽,为什么主事件循环会被卡住?

bash - 如何从终端运行 .sh 或 .bat 文件?

java - 是否可以使用 Hibernate Criteria 在多个列上搜索相同的值?

java - 加载 Applet 时删除 Java 加载图像

java - 为什么这没有正确同步?

java.sql.SQLException : Table 'QRTZ_TRIGGERS' is marked as crashed and should be repaired 异常

java - Tomcat 未启动 JRE 未正确定义