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