Jstack是什么

  • **Jstack (Stack Trace for Java)**命令⽤于⽣成虚拟机当前时刻的线程快照(-般称为​​thread dump​​ 或者 ​​java core​​ ⽂件)
  • 线程快照就是当前虚拟机内每⼀条线程正在执⾏的⽅法堆栈的集合,⽣成线程快照的主要⽬的是定位线程出现⻓时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的⻓时间等待等都是导致线程⻓时间停顿的常⻅原因。线程出现停顿的时候通过 jstack 来查看各个线程的调⽤堆栈,就可以知道没有响应的线程到底在后台做些什么事情,或者等待着什么资源

Jstack怎么做

  • 常⽤命令 ​​jstack -l 3500​
  • ​jstack -F​​ 当正常输出的请求不被响应时,强制输出线程堆栈 Force

线上程序⼀般不能kill进程pid的⽅式直接关闭

​shutdownHook​​ :在关闭之前执⾏的任务