jstack 명령 JAVA 스 레 드 스 택 보기

JAVA 스 택 정보
실제 생산 에 서 는 개발 및 테스트 가 전면적으로 덮어 쓰 지 못 한 코드 품질, 성능 문제 로 인해 스 레 드 가 걸 리 거나 붕 괴 될 수 있 습 니 다.스 택 정 보 를 확인 해 야 할 것 같 습 니 다.
jps -lvm
jps - lvm 는 현재 기계 에서 실행 중인 자바 프로 세 스 를 보 는 데 사 용 됩 니 다.
C:\Users\Administrator>jps -lvm
7348  -Dosgi.requiredJavaVersion=1.8 [email protected]/ecl
UseG1GC -XX:+UseStringDeduplication -Dosgi.requiredJavaVersion=1.8 -Xms256m -Xmx
1480 sun.tools.jps.Jps -lvm -Dapplication.home=C:\Program Files\Java\jdk1.8.0_14
6812 com.byron4j.currency.lock.ReantrentLockDemo -Dfile.encoding=UTF-8


현재 컴퓨터 가 3 개의 자바 프로 세 스 를 실행 하고 있 는 것 을 보 았 습 니 다. 프로 세 스 id 는 6812 입 니 다. 스 택 정 보 를 확인 해 야 합 니 다.
jstack -l pid
저 희 는 jstack - l 6812 를 사용 하여 저희 의 응용 스 택 정 보 를 조회 합 니 다.
C:\Users\Administrator>jstack -l 6812
2017-08-06 14:00:28
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.144-b01 mixed mode):

"Service Thread" #10 daemon prio=9 os_prio=0 tid=0x0000000018b8b000 nid=0x1658 runnable [0x000000000
0000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
        - None

"C1 CompilerThread3" #9 daemon prio=9 os_prio=2 tid=0x0000000018b04000 nid=0x1f94 waiting on conditi
on [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
        - None

......


#        
"main" #1 prio=5 os_prio=0 tid=0x000000000263f000 nid=0xc4 waiting on condition [0x00000000027af000]

   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at com.byron4j.currency.lock.ReantrentLockDemo.main(ReantrentLockDemo.java:19)

   Locked ownable synchronizers:
        - None


우리 의 응용 스 레 드 가 현재 대기 수면 상태 에 있 음 을 볼 수 있 습 니 다: TIMEDWAITING (sleeping) 은 동기 화 된 글자 synchronized 를 통 해 자 물 쇠 를 가 져 와 기다 리 는 것 이 아 닙 니 다.

좋은 웹페이지 즐겨찾기