我们最近遇到了一种情况,生产机器因大量线程转储而停机。它是树脂网络服务器,它提供了“全线程转储 Java HotSpot(TM) 64 位服务器 VM(14.0-b16 混合模式):”。
有很多 BLOCKED 线程,但它们让我感到困惑。IE,一个是这样的:
"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)
String 的代码在哪里
return new String(data);
那些看起来像是被封锁的奇怪地方。
任何人都可以提出这些电话会被阻止的原因吗?
谢谢,-卡尔