4
我们最近有一种情况,生产计算机因大量线程转储而关闭。它是树脂网络服务器,它给了'全线程转储Java HotSpot(TM)64位服务器虚拟机(14.0-b16混合模式):'。Bizzare线程块创建原始数组
有大量的BLOCKED线程,但它们让我感到困惑。即,一个是这样的:
"resin-8576" daemon prio=10 tid=0x00007f871827b800 nid=0x6b5 waiting for monitor entry [0x00007f864a7e6000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.lang.String.toCharArray(String.java:2725)
at java.lang.Thread.setName(Thread.java:1051)
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:605)
at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:730)
at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:649)
at java.lang.Thread.run(Thread.java:619)
的代码有
char result[] = new char[count];
另一个是像
"resin-8574" daemon prio=10 tid=0x00007f8718277800 nid=0x6b3 waiting for monitor entry [0x00007f864a9e8000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.lang.String.valueOf(String.java:2840)
at java.lang.Thread.getName(Thread.java:1061)
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:603)
at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:730)
at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:649)
at java.lang.Thread.run(Thread.java:619)
凡串的码有
return new String(data);
那些看起来像被阻挡的陌生地方。
任何人都可以提出一个原因,这些电话会被阻止?
感谢, -kal
它阻塞“新”,所以这可能是由内部内存管理或垃圾收集器造成的。这可能是因为内存不足(内存不足异常不会引发延迟)。 – josefx 2011-03-24 17:16:32