dump 中 waiting on condition、parking to wait for 应该怎么理解

huangriyan 2015-05-09
各位大侠
   我在dump文件看到如下内容:
"servicecut_group-172-16-3-119-fetch-Runner-7" prio=10 tid=0x00007fe1a1181000 nid=0x7292 waiting on condition [0x00007fe0833d2000]
   java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  <0x0000000734830060> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)

其中 waiting on condition [0x00007fe0833d2000]
  与  parking to wait for  <0x0000000734830060> 有什么联系
[0x00007fe0833d2000] 与  <0x0000000734830060> 分别表示什么?
nijiaben 2015-05-10
waiting on condition表示非Object.wait的条件等待,比如说你调用了sleep,park等操作
后面的[0x00007fe0833d2000]是预测栈起始地址(不一定准,按照最后的java栈帧内存地址mask 12位来算的)

parking to wait for 就是调用了park动作了,后面的 <0x0000000734830060>就是传给park的那个对象的地址
huangriyan 2015-05-11
大概明白一点,不知是不是可以这么理解,凡是 [] 起来的,都是摸个线程的运行地址,感觉没有多大的用处。凡是 <> 包起来的,都是对象的地址(感觉可以看做ID),不知这样理解有没有大问题
Global site tag (gtag.js) - Google Analytics