Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jstack:Java线程转储的帮助_Java_Thread Dump - Fatal编程技术网

jstack:Java线程转储的帮助

jstack:Java线程转储的帮助,java,thread-dump,Java,Thread Dump,我在和杰斯塔克玩。关于线程转储显示的内容,没有太多信息 在玩游戏时,我得到了两个不同的线程转储: 转储1: java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:485) at org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.borrowOb

我在和杰斯塔克玩。关于线程转储显示的内容,没有太多信息

在玩游戏时,我得到了两个不同的线程转储:

转储1:

java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1115)
- locked <0x00000007e9a52840> (a org.apache.tomcat.dbcp.pool.impl.GenericObjectPool$Latch)
at org.apache.tomcat.dbcp.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
java.lang.Thread.State:正在等待(在对象监视器上)
在java.lang.Object.wait(本机方法)
等待(Object.java:485)
位于org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1115)
-锁定(org.apache.tomcat.dbcp.pool.impl.GenericObjectPool$Latch)
位于org.apache.tomcat.dbcp.dbcp.poolgDataSource.getConnection(poolgDataSource.java:106)
位于org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
[……]

转储2:

java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x9a000c30> (a org.apache.tomcat.dbcp.pool.impl.GenericObjectPool$Latch)
at java.lang.Object.wait(Object.java:485)
at org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1104)
- locked <0x9a000c30> (a org.apache.tomcat.dbcp.pool.impl.GenericObjectPool$Latch)
at org.apache.tomcat.dbcp.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
java.lang.Thread.State:正在等待(在对象监视器上)
在java.lang.Object.wait(本机方法)
-等待(org.apache.tomcat.dbcp.pool.impl.GenericObjectPool$lack)
等待(Object.java:485)
位于org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1104)
-锁定(org.apache.tomcat.dbcp.pool.impl.GenericObjectPool$Latch)
位于org.apache.tomcat.dbcp.dbcp.poolgDataSource.getConnection(poolgDataSource.java:106)
位于org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
[……]

(为了完整性:两个转储都来自Tomcat 6安装)

在这里可以看到: -两个线程都处于等待状态。 -两个线程都在方法对象()中输入了同步块 -这两个线程似乎都对GenericObjectPool$Latch类型的(不同)对象调用了wait()

我还看到,转储2显示“等待…”,但转储1不显示。 为什么,这意味着什么

提前感谢您的回答

致以最良好的祝愿, 马库斯