jstack中的对象id

时间:2013-05-02 14:45:15

标签: java jvm deadlock jstack

我在我的系统中遇到了僵局,这里有两段相隔几分钟的摘录

Jstack 1

Found one Java-level deadlock:
=============================
"com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2":
  waiting to lock monitor 0x00007f1ad075d2e8 (object 0x00007f1aed690ff8, a com.mysql.jdbc.JDBC4ResultSet),
  which is held by "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1"
"com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1":
  waiting to lock monitor 0x00007f1ad075d390 (object 0x00007f1aed4ca6c8, a com.mysql.jdbc.JDBC4Connection),
  which is held by "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2"

Jstack 2

Found one Java-level deadlock:
=============================
"com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2":
  waiting to lock monitor 0x00007f1ad075d2e8 (object 0x00007f1aec62c8a8, a com.mysql.jdbc.JDBC4ResultSet),
  which is held by "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1"
"com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1":
  waiting to lock monitor 0x00007f1ad075d390 (object 0x00007f1aec6077b8, a com.mysql.jdbc.JDBC4Connection),
  which is held by "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2"

在两个jstack中,监视器ID都是相同的   0x00007f1ad075d2e8 0x00007f1ad075d390 , 但是对象id是不同的。

显然存在死锁,为什么对象id不同? 他们不应该一样吗?

0 个答案:

没有答案