자바 스레드의 해석 스레드 상태는 다음과 같은 열 가지 상태 중 하나에 항상 :자바 스레드 : 실행중인 JVM
NEW: Just starting up, i.e., in process of being initialized.
NEW_TRANS: Corresponding transition state (not used, included for completness).
IN_NATIVE: Running in native code.
IN_NATIVE_TRANS: Corresponding transition state.
IN_VM: Running in VM.
IN_VM_TRANS: Corresponding transition state.
IN_JAVA: Running in Java or in stub code.
IN_JAVA_TRANS: Corresponding transition state (not used, included for completness).
BLOCKED: Blocked in vm.
BLOCKED_TRANS: Corresponding transition state.
이되지 않는 상태 (UNINITIALIZED
)는 목록에서 제외되었습니다.
위의 상태에 대한 정의가 있지만 실행중인 응용 프로그램 서버에 대한 주어진 스레드 상태 설정을 해석하기위한 "경험 규칙"을 찾고 있습니다. 그리고,보다 구체적으로 :
시간에 여러 지점에서 (jstack을 사용하여 얻은) 다음 스레드 통계 실시간 어플리케이션 서버을 가정
- 100 스레드 35
BLOCKED
65IN_NATIVE
- 113 스레드 : 35
BLOCKED
77IN_NATIVE
1IN_VM
- 52 스레드 38
BLOCKED
1IN_JAVA
6IN_NATIVE
7IN_VM
012,351 6,
- 120 실 39
BLOCKED
1IN_JAVA
80 개IN_NATIVE
- 94 스레드 34
BLOCKED
59IN_NATIVE
다섯 개 통계 각 스레드 1IN_NATIVE_TRANS
-받는 관하여 추론 할 수있는 전반적인 JVM 상태? I. "이 시나리오에서 JVM은 요청 대기 상태 인 것처럼 보입니다", "시스템이 요청 처리 중입니다."
안녕하세요, 위의 스레드 상태 설명은 어디에서 찾을 수 있습니까? – StrikeW
스레드 상태와 그 설명은 [HotSpot JVM의 JavaThreadState 클래스] (http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b27/sun/jvm)에서 찾을 수 있습니다. /hotspot/runtime/JavaThreadState.java). – kernelthree