2014-05-22 6 views
3

다음 스레드 덤프가 있습니다. jstack을 사용하고 단어 runnable 옆의 16 진수 값을 확인하고 싶습니다. 다른 위치에서 사용 된 동일한 값이 다음과 같이 표시되는 것을 보았습니다.자바 스레드에서 덤프 라인을 이해

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) 
+0

아마도이 메시지는 자바 메일 링리스트에서 확인해야합니다. – Vipin

답변

0

I가 내가 jstack을을 사용하여 얻을 무엇을 16 진수 값을 알고 싶습니다 다음 스레드 덤프 단어 실행 가능한 프로그램 옆에.

가 [0x00000000796e9000]

이 다른 스레드가이 스레드에서 기다리고있는 뜻 상태로 대기 : 나는 에게로 보여주는 다른 장소에서 사용되는 동일한 값을 보았는가?

예. 이는 하나의 스레드가 잠금을 보유하고 있고 다른 스레드가 해당 잠금을 확보하려고 대기 중임을 나타냅니다. 이것은 synchronized 키워드와 개념적으로 상당히 비슷하지만, 꽤 강력하고 복잡 할 수 있습니다. 조건을 더 잘 이해하려면 condition에 대한 javadoc을 살펴보십시오.

question/answer은 스레드 덤프 (java 6의 경우)의 속성에 대한 설명을 제공합니다.