首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在jstack输出中显示"parking to wait ...“的大十六进制数字是什么意思?

在jstack输出中显示"parking to wait ...“的大十六进制数字是什么意思?
EN

Stack Overflow用户
提问于 2019-07-08 17:07:08
回答 1查看 779关注 0票数 0

我有jstack,其中许多线程处于等待状态,描述为"parking to wait for“,如:

代码语言:javascript
复制
java.lang.Thread.State: WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@11.0.3/Native Method)
    - parking to wait for  <0x0000000307db96c8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(java.base@11.0.3/LockSupport.java:194)

这个大的十六进制数字是什么?是时候了吗?它是标识符吗?

编辑

我已经将我的Java应用程序的状态转储到那些在上午和下午工作了很长时间(几天)的线程。我看到“按条件等待”是相同的大十六进制数,但“停车等待”中的其他大十六进制数是不同的:

第二天早上:

代码语言:javascript
复制
"qtp792232038-1037-..." #1037 prio=5 os_prio=0 cpu=787.64ms elapsed=528768.56s tid=0x00007f164004a800 nid=0x1346
waiting on condition  [0x00007f181fffd000]
   java.lang.Thread.State: WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@11.0.3/Native Method)
    - parking to wait for  <0x000000030a69c410> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(java.base@11.0.3/LockSupport.java:194)
    ...

几个小时后:

代码语言:javascript
复制
"qtp792232038-1037-..." #1037 prio=5 os_prio=0 cpu=787.64ms elapsed=546900.36s tid=0x00007f164004a800 nid=0x1346
waiting on condition  [0x00007f181fffd000]
   java.lang.Thread.State: WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@11.0.3/Native Method)
    - parking to wait for  <0x0000000307db96c8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(java.base@11.0.3/LockSupport.java:194)
    ...
EN

回答 1

Stack Overflow用户

发布于 2019-07-08 17:47:58

是的,它是锁对象的内部标识符。

您可以使用它来查看哪个线程正在等待另一个线程。

在线程转储中搜索此id,应该有一个堆栈框架提到的另一个线程持有具有相同id的锁。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56931621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档