Tag: 挂起

Java线程挂起没有死锁

我目前在处理悬挂的过程时遇到了一些麻烦。 首先,下面的线程转储显示没有死锁。 另一个有趣的事情是该进程挂在java.lang.System.identityHashCode方法中。 该进程的当前CPU使用率为0%,有时高峰为1%…通常该进程使用100%。 它使用1.7GB的RAM(这个过程是正常的)。 该机器有足够的CPU,磁盘空间和RAM可用。 Attaching to process ID 4146, please wait… Debugger attached successfully. Server compiler detected. JVM version is 23.7-b01 Deadlock Detection: No deadlocks found. Thread 12761: (state = BLOCKED) Thread 4159: (state = BLOCKED) Thread 4158: (state = BLOCKED) – java.lang.Object.wait(long) @bci=0 (Interpreted frame) – java.lang.ref.ReferenceQueue.remove(long) @bci=44, line=135 (Interpreted frame) – […]

Java似乎挂了

我一直在自定义应用程序中使用Java Service包装器已经有一段时间了,它一直运行良好。 由于在最近几天将我们的应用程序更新到新版本,JVM开始挂起,然后包装器在日志中打印出来:JVM出现挂起:超时等待来自JVM的信号。 然后它会自动终止JVM并再次启动应用程序。 这在大约10个小时的运行后发生,这使得调试变得更加困难。 当然,我将查看我们所做的更改,但没有做出重大更改,我怀疑是会导致此类问题。 我在哪里可以尝试找出发生了什么? 来自应用程序的调试消息不表示任何有趣的内容。 如果JVM刚崩溃,它通常会创建一个转储,这可以帮助调试它,但它是挂起的,所以它不会创建转储。 如果我没有自动重启服务,那么在重新启动它之前我可以做些什么来从JVM中获取一些有用的信息? 在我看来,JVM不应该挂起典型的编程错误。 你之前遇到什么会导致JVM挂起?