jstack:Java线程转储的帮助
我在和杰斯塔克玩。关于线程转储显示的内容,没有太多信息 在玩游戏时,我得到了两个不同的线程转储: 转储1: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
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不显示。
为什么,这意味着什么
提前感谢您的回答
致以最良好的祝愿,
马库斯