에 의해 보였다 미국 주 우리는 약이 그림이 표시됩니다어떻게 이론적 스레드 상태에 맞게 우리는 '자바 스레드 상태'같은 구글 경우 jvisualvm
을하지만 우리는 jVisualVm을 열 경우 우리는 볼 것이다 다음
당신이이 그림을 meatch을 도와 드릴까요?
수면 상태는 단지 Thread.sleep()
입니까? 달리기의 특별한 경우?
에 의해 보였다 미국 주 우리는 약이 그림이 표시됩니다어떻게 이론적 스레드 상태에 맞게 우리는 '자바 스레드 상태'같은 구글 경우 jvisualvm
을하지만 우리는 jVisualVm을 열 경우 우리는 볼 것이다 다음
당신이이 그림을 meatch을 도와 드릴까요?
수면 상태는 단지 Thread.sleep()
입니까? 달리기의 특별한 경우?
입니다. The Javadoc is quite helpful to get an understanding of the mapping you seek. 당신이 스레드 덤프를 얻고에서 상태를 비교한다면
"Finalizer" daemon prio=8 tid=0x022f4000 nid=0xd14 in Object.wait() [0x044cf000]
java.lang.Thread.State: WAITING (on object monitor)
그래서 당신은 당신의 자신의 상태를 해독 할 수 있습니다 :
JVisualVM 상태는 쓰레드 덤프에 볼 것이다 여분의 상태 설명, 예를 나타냅니다 JVisualVM 및 스레드 덤프를 스레드 이름별로 비교합니다. 여기
이 매핑은 당신이 원하는됩니다 :
Running
->java.lang.Thread.State: RUNNABLE
Sleeping
->java.lang.Thread.State: TIMED_WAITING (sleeping)
Wait
->java.lang.Thread.State: WAITING TIMED_WAITING (on object monitor)
Park
->java.lang.Thread.State: WAITING TIMED_WAITING (parking)
Monitor
->java.lang.Thread.State: BLOCKED (on object monitor)
Park
상태는 WAITING
또는 TIMED_WAITING
의 특수한 경우입니다. Wait
과의 차이점은 객체 모니터에서 Wait
이 발생한다는 것입니다 (즉, synchronized
블록 내의 Object.wait()
). 반면에 Park
은 모니터를 보유 할 필요없이 Unsafe.park
을 통해 예약에서 스레드를 제거합니다 (즉, synchronized
블록이 필요 없음).
공원이 그림은 java.lang.Thread.State
열거를 나타냅니다
sun.misc.Unsafe.park()
응답을 연장 할 수 있습니까? 자바 의사는 명확하지 않다 – gstackoverflow
나를 위해 아직도 불분명하다. 예를 들어 TIMED_WAITING 대 대기 TIMED_WAITING. 주차? – gstackoverflow
내가 추가 한 JavaDoc 링크에서 확인할 수 있습니다. 'WAITING' - 대기중인 스레드의 스레드 상태. thread는, 다음의 메소드의 1 개를 호출하기 위해서 (때문에) 대기 상태가됩니다. 타임 아웃 없음의 Object.wait, 타임 아웃 없음의 Thread.join, LockSupport.park. 'TIMED_WAITING' - 지정된 대기 시간을 가진 대기 스레드의 스레드 상태. thread는 지정된 양의 대기 시간 (Thread.sleep, Object.wait with timeout), Thread.join (Timeout 포함), LockSupport.parkNanos, LockSupport를 사용하여 다음 메소드 중 하나를 호출하기 때문에 시간 초과 대기 상태에 있습니다.parkuchi – bashnesnos
@gstackoverflow "Park"에 대한 설명도 추가했습니다. – bashnesnos