JVM的监控工具之jstack

参考博客:https://www.jianshu.com/p/213710fb9e40

jstack(Stack Trace for Java)命令用于生成虚拟机当前时刻的线程快照(一般称为threaddump或者javacore文件)。线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈 的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,

如线程间死锁、死循环、请求外部资源导致的长时间等待等都是导致线程长时间停顿的常见原因。
线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做些什么事情,或者等待着什么资源

首先jps -l 查看java进程:

接着再用jstack 21028 查看线程状态

发现诊断到了死锁:

 

死锁演示代码如下

public class DeadLockTest {/***线程死锁等待演示*/static class SynAddRunalbe implements Runnable{int a,b;public SynAddRunalbe(int a,int b){this.a=a;this.b=b;}@Overridepublic void run(){synchronized(Integer.valueOf(a)){synchronized(Integer.valueOf(b)){System.out.println(a+b);}}}}public static void main(String[]args){for(int i=0;i<100;i++){new Thread(new SynAddRunalbe(1,2)).start();new Thread(new SynAddRunalbe(2,1)).start();}}
}

  

 

转载于:https://www.cnblogs.com/cheng21553516/p/11235432.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248396.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

liunx驱动----异步通知

查询&#xff1a;消耗资源 中断&#xff1a;read 一直要去读poll &#xff1a;指定起始时间异步通知signal 测试程序include <stdio.h> include <signal.h>void my_signal(int signum) {static unsigned int cnt;printf("signum %d, %d timer\n",signum…

面试官: 用css实现android系统的loading动画

源码: github.com/any86/any-u… ios/android web常用的loading图标有2种, 一种是ios的"菊花", 一种是android的"环". 今天我们用svg实现android的"环"动画, 下节课实现ios的"菊花". 注意: gif帧数少的原因, 实际动画效果是很平滑的.d…

2018-06-29 西游记主题Python入门示例尝试-数据结构 5.1-5.1.2

(见前: 中文代码示例视频演示Python入门第五章 数据结构 仍然基于官方文档, 欢迎建议(尤其是如何取材). 5. Data Structures - More on Lists 列表详述 >>> 人物 [佛, 妖, 凡人, 菩萨, 妖, 凡人] >>> 人物.count(妖) 2 >>> 人物.count(圣人) 0 >…

Niginx 集群负载均衡策略

Niginx 集群负载均衡策略 所需物料 1.Nginx服务 步骤略 本人 nginx version: nginx/1.16.0 2.Java Servlet 测试项目 新建java web 项目&#xff0c;项目名称为&#xff1a;tt import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annot…

C#循环给多个控件赋值

需要给 多个 文本框重新赋值 1 textBox1.Text"ss"; 2 3 textBox2.Text"ss"; 4 5 textBox999.Text"ss"; 6 7 textBox99999.Text"ss"; 这样太麻烦&#xff0c;控件过多不方便写 通过遍历 一次性赋值&#xff0c;再多也不怕了 将所有T…

记号一次更换IBM X3650M4主板后RAID无法启动的解决

https://wenku.baidu.com/view/9d503ef367ec102de2bd89d7.html 强烈感谢上面分享文档的大侠&#xff01;&#xff01; 1、更换主板后&#xff0c;linux系统&#xff0c;无法加载引导。需要设置主板的启动项 2、选择boot manager&#xff0c;进到下面的画面 3、选择add boot opt…

关于REST API设计的一些小经验

版权声明&#xff1a;转载时请以超链接形式标明文章原始出处和作者信息及本声明http://phoenixtoday.blogbus.com/logs/45855234.html 最近小组里有一些关于REST API设计的讨论&#xff0c;有些收获&#xff0c;打算在这里写一下。通常来讲设计第一个版本的REST API并不难&…

1037 在霍格沃茨找零钱

题目传送门&#xff1a;https://pintia.cn/problem-sets/994805260223102976/problems/994805284923359232 题解&#xff1a; #include<iostream> using namespace std;int main() {int Galleon1, Sickle1, Knut1, Galleon2, Sickle2, Knut2;char c;cin >> Galleon…

我对创业和管理的一些看法

创业&#xff0c;对于刚工作的人&#xff0c;会比较兴奋&#xff0c;因为创业充满想象力&#xff1b;对于工作几年的人&#xff0c;会比较向往&#xff0c;因为压抑得太久。其实&#xff0c;创业和就业一样&#xff0c;只是实现自己人生价值的两种方式&#xff0c;关键是心态问…

关于Anaconda的环境和包管理

Anaconda相对于原生python解释器具有更好的包管理功能&#xff0c;它有一个env文件夹&#xff0c;里面包含所要管理的所有环境&#xff1b;日常操作时我们可能会使用pytorch、Tensorflow等多个环境&#xff0c;由于每个环境对Python的包的兼容性都不一样&#xff0c;所以我们可…

WCF basicHttpBinding之Message Security Mode

原创地址&#xff1a;http://www.cnblogs.com/jfzhu/p/4067873.html 转载请注明出处 前面的文章《WCF Security基本概念》介绍了WCF的security mode&#xff0c;简单说Transport是transport级别上的加密&am…

战略游戏

题目描述 Bob喜欢玩电脑游戏&#xff0c;特别是战略游戏。但是他经常无法找到快速玩过游戏的办法。现在他有个问题。 他要建立一个古城堡&#xff0c;城堡中的路形成一棵树。他要在这棵树的结点上放置最少数目的士兵&#xff0c;使得这些士兵能了望到所有的路。 注意&#xff0…

Vue语法学习第三课——计算属性

模板内的表达式非常便利&#xff0c;但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护。对于任何复杂逻辑&#xff0c;都应当使用计算属性。 <div id"example"><p>original message : "{{message}}"</p&…

云计算学习资料分享:type查看命令

type 查看命令类型&#xff0c;例如该命令是alias&#xff0c;还是内置命令&#xff0c;还是某个文件&#xff0c;还是关键字 哪种神仙&#xff1a;天上还是地上&#xff0c;还是水里游的 [roottianyun ~]# type ll ll is aliased to ls -l --colorauto [roottianyun ~]# type …

neo4j删除所有节点

MATCH (n)OPTIONAL MATCH (n)-[r]-()DELETE n,r转载于:https://www.cnblogs.com/luoganttcc/p/10525189.html

Hadoop RPC实例

本文发表于本人博客。 上次写了个hadoop伪分布环境搭建的笔记了&#xff0c;今天来说下hadoop分布式构建的基础RPC&#xff0c;这个RPC在提交Job任务的时候底层就是创建了RPC来实现远程过程调用服务端。 我们首先可以通过Job的waitForCompletion(boolean verbose)方法来跟踪代码…

Django 模板语言 标签

前言&#xff1a;django的模板语法基本和flask的jinja2基本一样。下面比较一下两个模板语法的区别。 &#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff0d;深度变量的查找&#xff08;万能的句点号&#xff09; 在 Django 模板中遍历复杂数据结构的关键是…

电子书下载:Illustrated C# 2012 4th

下载&#xff1a;http://www.ctdisk.com/file/9015906转载于:https://www.cnblogs.com/MaxWoods/archive/2012/08/26/2657752.html

关于83版射雕英雄传

今天无意中看到网上一群人关于83版射雕的一些争论.或许一些现在的年轻人不喜欢83版射雕,说那太老土了,但想想那个时代的条件,能拍出这样的片子,是非常不错的,而且我觉得83版射雕也是最忠于原著的,跟后来的翻版比较,虽然从画面效果,人物服装方面存在差距,但这都是由于历史原因和…

ZOJ 3735 Josephina and RPG

思路&#xff1a;dp[i][j]:第i轮打完后&#xff0c;决定以j阵容打下一轮 保持原有阵容&#xff1a;dp[ i ][ j ] dp[ i - 1 ][ j ] * p [ j ][ s [ i ] ] 换成第i轮怪的阵容: for(int k0;k<r;k)dp[i][j]max(dp[i][j],dp[i-1][k]*p[k][s[i]]) 优化&#xff1a;用滚动数组&am…