我在使用JDK 1.5.0_08在Fedora Core 6上运行的应用程序时遇到问题.
经过一段时间(通常是几天)后,线程开始陷入本机方法.
线程被锁定在这样的东西:
"pool-2-thread-2571" prio=1 tid=0x08dd0b28 nid=0x319e waiting for monitor entry [0xb91fe000..0xb91ff7d4] at java.lang.Class.getDeclaredConstructors0(Native Method)
要么
"pool-2-thread-2547" prio=1 tid=0x75641620 nid=0x1745 waiting for monitor entry [0xbc7fe000..0xbc7ff554] at sun.misc.Unsafe.defineClass(Native Method)
特别令我困惑的是这一个:
"HealthMonitor-10" daemon prio=1 tid=0x0868d1c0 nid=0x2b72 waiting for monitor entry [0xbe5ff000..0xbe5ff4d4] at java.lang.Thread.dumpThreads(Native Method) at java.lang.Thread.getStackTrace(Thread.java:1383)
线程保持卡住状态,直到VM重新启动.
任何人都可以告诉我这里发生了什么,可能导致本机方法阻止的原因是什么?每个卡住线程顶部的监视器入口地址范围不同.我怎么能弄清楚拿着这台显示器的是什么?
任何建议或意见将不胜感激!
谢谢,大卫