【问题标题】:understanding line from java thread dump来自java线程转储的理解行
【发布时间】:2014-05-22 22:08:39
【问题描述】:

我有以下使用 jstack 获得的线程转储,并且想知道单词 runnable 旁边的十六进制值显示什么。我看到其他地方使用的相同值显示为:

waiting on condition [0x00000000796e9000]

这是否意味着其他线程正在等待这个线程?

runnable [0x00000000796e9000]

线程转储

"ajp-bio-8009-exec-2925" daemon prio=10 tid=0x0000000015ca7000 nid=0x53c7 runnable [0x00000000796e9000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:152)
at java.net.SocketInputStream.read(SocketInputStream.java:122)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)

【问题讨论】:

  • 可能你应该在java邮件列表中问这个。

标签: java multithreading jvm thread-dump jstack


【解决方案1】:

我有以下使用 jstack 获得的线程转储,并希望 知道单词 runnable 旁边的十六进制值显示什么。我见过 其他地方使用的相同值显示为:

等待条件 [0x00000000796e9000]

这是否意味着其他线程正在等待该线程?

是的。这表明一个线程持有一个锁,而另一个线程正在等待获取该锁。这在概念上与 synchronized 关键字非常相似,但可能更强大(也更复杂)。 查看 condition 的 javadoc 以更好地了解条件。

question/answer 给出了线程转储中属性的描述(对于 java 6)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-15
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    • 2020-07-09
    相关资源
    最近更新 更多