Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java线程突然停止运行_Java - Fatal编程技术网

Java线程突然停止运行

Java线程突然停止运行,java,Java,我在RHEL OS的1.5JavaVM中运行J2SE应用程序。应用程序的任务之一是在启动期间创建3个无限运行的用户线程。其目的是在后端数据库表中检查特定类型的请求,并执行相应的操作 正如我们所观察到的,长时间运行的线程突然停止运行,但在ps-ef | grepjava中,应用程序仍然是活动的,可以看到JVM进程 有人能解释为什么创建为在无限循环中运行的线程会突然停止吗?任何关于如何发现这一问题和可能的解决办法的想法都将大有裨益 关于,, 奎师那我建议向你的应用程序发送一条消息,转储线程并分析输出

我在RHEL OS的1.5JavaVM中运行J2SE应用程序。应用程序的任务之一是在启动期间创建3个无限运行的用户线程。其目的是在后端数据库表中检查特定类型的请求,并执行相应的操作

正如我们所观察到的,长时间运行的线程突然停止运行,但在ps-ef | grepjava中,应用程序仍然是活动的,可以看到JVM进程

有人能解释为什么创建为在无限循环中运行的线程会突然停止吗?任何关于如何发现这一问题和可能的解决办法的想法都将大有裨益

关于,,
奎师那

我建议向你的应用程序发送一条消息,转储线程并分析输出。也许您的线程正在等待一些输入(IO)。也许他们陷入僵局了。也许他们是带着一个意外的例外离开的。线程转储将告诉您发生了什么(如果您提前命名线程,这样您就可以在转储中识别它们,这会很有帮助)。

我建议向您的应用程序发送一条消息,转储线程并分析输出。也许您的线程正在等待一些输入(IO)。也许他们陷入僵局了。也许他们是带着一个意外的例外离开的。线程转储将告诉您发生了什么(如果您提前命名线程,以便在转储中识别它们,这会有所帮助)。

可能您有未处理的异常

首先,您应该记录所有线程活动(您可以使用来实现这一点)


您还可以重写ThreadGroup类的uncaughtException方法,并在线程因未捕获的异常而死亡时创建警报

可能您有未处理的异常

首先,您应该记录所有线程活动(您可以使用来实现这一点)


您还可以重写ThreadGroup类的uncaughtException方法,并在线程因未捕获的异常而死亡时创建警报

这听起来像是死锁的经典描述这听起来像死锁线程转储的经典描述绝对是解决此类问题的方法。不确定你的线程在做什么?抛弃他们的国家。分析它们是否都在同一位置等待相同的锁定/阻塞。线程转储绝对是解决此类问题的方法。不确定你的线程在做什么?抛弃他们的国家。分析它们是否都在同一位置等待相同的锁定/阻止。