Java jstack输出显示“大十六进制数”的含义是什么;停车等候……”;?

Java jstack输出显示“大十六进制数”的含义是什么;停车等候……”;?,java,locking,jstack,Java,Locking,Jstack,我有一个jstack,其中许多线程处于等待状态,描述为“停车等待”,如: java.lang.Thread.State:等待(停车) 在jdk.internal.misc.Unsafe.park(java。base@11.0.3/本机方法) -停车等待(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) 在java.util.concurrent.locks.LockSupport.park(java。ba

我有一个jstack,其中许多线程处于等待状态,描述为“停车等待”,如:

java.lang.Thread.State:等待(停车)
在jdk.internal.misc.Unsafe.park(java。base@11.0.3/本机方法)
-停车等待(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
在java.util.concurrent.locks.LockSupport.park(java。base@11.0.3/LockSupport.java:194)
这个大十六进制数是什么?是时候了吗?是标识符吗

编辑

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

早上:

"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)
    ...
“qtp792232038-1037-…”#1037优先级=5操作系统优先级=0 cpu=787.64ms已用时间=528768.56s tid=0x00007f164004a800 nid=0x1346
等待条件[0x00007f181fffd000]
java.lang.Thread.State:等待(停车)
在jdk.internal.misc.Unsafe.park(java。base@11.0.3/本机方法)
-停车等待(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
在java.util.concurrent.locks.LockSupport.park(java。base@11.0.3/LockSupport.java:194)
...
几小时后:

"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)
    ...
“qtp792232038-1037-…”#1037优先级=5操作系统优先级=0 cpu=787.64ms已用时间=546900.36s tid=0x00007f164004a800 nid=0x1346
等待条件[0x00007f181fffd000]
java.lang.Thread.State:等待(停车)
在jdk.internal.misc.Unsafe.park(java。base@11.0.3/本机方法)
-停车等待(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
在java.util.concurrent.locks.LockSupport.park(java。base@11.0.3/LockSupport.java:194)
...

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

您可以使用它来查看哪个线程正在等待哪个其他线程


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

十六进制数格式的十六进制数是对象的值我不是100%确定,但我要说的是内部对象id,它通常基于初始内存地址(取决于JVM)使用Jetty HTTP Server,我从应用程序中看到了一些大的十六进制数,这些十六进制数来自
行,只能等待一次。我不确定线程是否处于阻塞套接字写入状态。
"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)
    ...