3

I have the following thread dump I get using jstack and would like to know what the hex value next to the word runnable shows. I have seen the same value used in other places showing as:

waiting on condition [0x00000000796e9000]

Does this mean the other threads are waiting on this thread?

runnable [0x00000000796e9000]

thread dump

"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)
user624558
  • 559
  • 2
  • 8
  • 20

1 Answers1

1

I have the following thread dump I get using jstack and would like to know what the hex value next to the word runnable shows. I have seen the same value used in other places showing as:

waiting on condition [0x00000000796e9000]

Does this mean the other threads are waiting on this thread?

Yes. This indicates one thread holds a lock and another thread is waiting to obtain that lock. This is fairly similar to the synchronized keyword conceptually, but can be quite a bit more powerful (and complicated). Take a look at the javadoc for condition to get a better understanding of conditions.

This question/answer gives a description of the attributes in a thread dump (for java 6).

Community
  • 1
  • 1
Brett Okken
  • 6,210
  • 1
  • 19
  • 25