美文网首页
Java命令-jstack

Java命令-jstack

作者: 紫雨杰 | 来源:发表于2019-04-09 11:20 被阅读0次

一、介绍

1、jstack是java虚拟机自带的一种堆栈跟踪工具。jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,
   如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式:

          jstack [-l] pid
 

2、jstack主要分为两个功能: 

a.  针对活着的进程做本地的或远程的线程dump; 

b.  针对core文件做线程dump。

3、jstack用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是
   定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。 线程出现停顿的时候通过jstack来查看各个线程的调用
   堆栈,就可以知道没有响应的线程到底在后台做什么事情,或者等待什么资源。 如果java程序崩溃生成core文件,jstack工具可以用来获得core文件
   的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。另外,jstack工具还可以附属到正在运行
   的java程序中,看到当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung的状态,jstack是非常有用的。

总结:jstack命令主要用来查看Java线程调用堆栈的,可以用来分析线程问题(如死锁)。

二、线程状态

1、使用jstack命令查看线程堆栈信息时可能会看到的线程的几种状态:

(1)、NEW:未启动的。不会出现在Dump中。
(2)、RUNNABLE:在虚拟机内执行的。运行中状态,可能里面还能看到locked字样,表明它获得了某把锁。
(3)、BLOCKED:受阻塞并等待监视器锁。被某个锁(synchronizers)給block住了。
(4)、WATING:无限期等待另一个线程执行特定操作。等待某个condition或monitor发生,一般停留在park(), wait(), sleep(),join() 等语句里。
(5)、TIMED_WATING:有时限的等待另一个线程的特定操作。和WAITING的区别是wait() 等语句加上了时间限制 wait(timeout)。
(6)、TERMINATED:已退出的。

相关文章

  • Java的jstack命令使用详解

    jstack命令简介 jstack(Java Virtual Machine Stack Trace)是JDK提供...

  • JVM性能调优监控工具之jstack

    二、 jstack 此命令是为Java进程或核心文件或远程调试服务器打印Java线程的堆栈跟踪。jstack可以同...

  • Java命令-jstack

    一、介绍 二、线程状态

  • Java命令: jstack

    jstack jstack是java虚拟机自带的一种堆栈跟踪工具。 功能 jstack用于生成java虚拟机当前时...

  • JVM常用命令之-----jstack

    Jstack jstack命令主要用于调试java程序运行过程中的线程堆栈信息,可以用于检测死锁,进程耗用cpu过...

  • 常用Java命令-学习笔记

    java常用命令 jdk在bin目录下包含的命令和工具 jps:查看本机的Java中进程信息。jstack:打印线...

  • JVM回顾(一)

    1 查看JVM中运行的进程信息 jps jps -m 2 打印JAVA进程堆栈跟踪信息命令 jstack 命令示例...

  • 死锁排查

    JAVA程序 JSTACK或者JVISUALVM都能自动检查程序死锁 数据库命令 show engine inno...

  • jstack(Java Stack Trace)简介

    jstack(Java Stack Trace)简介 jstack:Java进程中线程的堆栈信息跟踪工具。功能简介...

  • 机器CPU高问题排查

    top找到占用CPU资源的进程top.png 要查看java程序在做什么事情,用jstack命令dump出java...

网友评论

      本文标题:Java命令-jstack

      本文链接:https://www.haomeiwen.com/subject/tlzykqtx.html