jvm调优案例分析-window通过jstack查找死锁的进程

我们经常会遇到java程序遇死锁的问题,也会经常遇到。

案例

以下是案例代码:

package com.dzend.mall.order;public class JstackLockDemo {public static final int initData =666;public static User user = new User();public int compute(){int a=1;int b=2;int c=(a+b)*10;return c;}public static void main(String[] args) {JstackLockDemo jstackLockDemo = new JstackLockDemo();while(true) {jstackLockDemo.compute();}}
}
class User{private int id;private String username;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}
}

一、运行这个程序JstackLockDemo

二、用jps找出当前的pid

pid为1836

三、启动Process Explorer

1、下载地址:

进程资源管理器 - Sysinternals | Microsoft Learn了解哪些文件、注册表项和其他对象进程已打开,它们已加载了哪些 DLL 等。icon-default.png?t=N7T8https://docs.microsoft.com/zh-cn/sysinternals/downloads/process-explorer

2、下载完,启动程序

3、找到pid为1836的进程,右键properties

4、查找到cpu资源使用高的的线程,线程ID:23396

四、用jstack工具收集该进程日志

1、在命令行输入

jstack 1836 > d://1836.out

 2、到d盘去查看,已经保存了1836.out

3、用记事本打开查看详细信息

把23396转化成16进制的5b64,用查找5b64

就能看到第19行的代码有问题,再进一步分析

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

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

相关文章

汽车传感器介绍

汽车中有各种类型的传感器,它们用于监测和控制车辆的各个方面。以下是一些常见的汽车传感器及其功能介绍: 车速传感器:车速传感器用于监测车辆的速度。它们可以采用不同的技术,如磁性传感器或光学传感器,以测量车轮的转…

对CryptoDriver里密钥格式定义的探索(2)

目录 1.概述 2.开始分析 2.1 公钥的PEM解析 2.2 私钥的PEM解析 3 小结 1.概述 我们简单描述了PEM格式,但是引出了ASN,1的问题,所以下片文章,我继续分析,并将pem格式解析出来 什么是AS

Git汇总

目录 1,查看分支 (1)查看本地分支 (2)查看远程分支 (3)查看所有分支 1,查看分支 (1)查看本地分支 git branch(2)查看远程分支 git branch -r…

java中可变参数和简单游戏

可变参数: 就是一种特殊形参,定义在方法,构造器的形参列表中,格式是:数据类型...参数名称 可变参数的好处: 灵活的接收数据 特点:可以不传数据给它,可以传一个数据或者多个数据给它…

Explain SQL 诊断和性能分析策略等问题

EXPLAIN SQL诊断和性能分析策略 问题1:请解释EXPLAIN命令在MySQL中的作用,并列举其主要输出列的含义。 答案1:EXPLAIN命令用于分析MySQL如何执行SQL查询语句,帮助开发者理解查询的执行计划,从而进行性能优化。其主要…

Window安装PostgresSQL

PostgreSQL 安装参考:Windows下安装PostgreSQL_window 安装postgresql-CSDN博客 安装好后打开pgAdmin4 配置Navicat连接PostgresSQL 找到安装目录文件 pg_hba.conf 修改配置增加: 修改前: # TYPE DATABASE USER ADDRES…

登录压力测试

目录 一、准备测试数据 1.1数据库存储过程添加数据 1.2导出为csv作为测试数据(账号、密码) 二、使用fiddler抓包查看接口 2.1.抓到相关接口信息 2.2添加线程组和http请求 2.3将前面接口需要的参数去json格式化 ​2.4填写相关信息 ​ 2.5添加http…

vue canvas绘制信令图,动态显示标题、宽度、高度

需求: 1、 根据后端返回的数据,动态绘制出信令图 2、根据 dataStatus 返回值: 0 和 1, 判断 文字内容的颜色,0:#000,1:red 3.、根据 lineType 返回值: 0 和 1, 判断 箭…

20240309web前端_第三周作业_教务系统页面

作业&#xff1a;教务系统页面 成果展示&#xff1a; 完整代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1…

ubuntu 部署redis

Redis redis官网地址&#xff1a;http://www.redis.io/ 所有历史版本下载地址&#xff1a;http://download.redis.io/releases/ redis中文文档地址&#xff1a;http://www.redis.cn/documentation.html Linux安装部署Redis_linux redis安装部署-CSDN博客 Linux下Redis的安…

深入理解Python中的生成器与迭代器:概念、区别与实战应用

深入理解Python中的生成器与迭代器&#xff1a;概念、区别与实战应用 开篇 在Python编程世界中&#xff0c;生成器&#xff08;Generators&#xff09;和迭代器&#xff08;Iterators&#xff09;是两个核心概念&#xff0c;它们在处理大型数据集、节省内存以及实现高效循环结…

Verilog实现手表计时

实现手表的计时功能&#xff1a; 1.具有start启动信号、pause暂停信号&#xff0c;可以自定义其触发机制。 2.具有时间更改接口&#xff0c;可以更改时、分、秒。 3.输出时、分、秒。 Verilog设计 模块端口定义&#xff1a; module watch1(input wire clk …

STC89C52学习笔记(七)

STC89C52学习笔记&#xff08;七&#xff09; 综述&#xff1a;本文介绍了串口以及讲述了串口相关寄存器如何配置并给予相关代码。 一、修改代码注意事项 在修改代码时不要一次性加入一堆代码&#xff0c;不利于定位错误。可以先注释一些代码&#xff0c;待解决完毕问题后再…

Angular 使用DomSanitizer

跨站脚本Cross-site scripting 简称XSS&#xff0c;是代码注入的一种&#xff0c;是一种网站应用程序的安全漏洞攻击。它允许恶意用户将代码注入到网页上&#xff0c;其他用户在使用网页时就会收到影响&#xff0c;这类攻击通常包含了HTML和用户端脚本语言&#xff08;JS&…

ES6基础(JavaScript基础)

本文用于检验学习效果&#xff0c;忘记知识就去文末的链接复习 1. ECMAScript介绍 ECMAScript是一种由Ecma国际&#xff08;前身为欧洲计算机制造商协会&#xff0c;英文名称是European Computer Manufacturers Association&#xff09;通过ECMA-262标准化的脚本程序设计语言…

基于拉格朗日分布算法的电动汽车充放电调度MATLAB程序

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 程序简介 该模型主要做的是基于拉格朗日分布算法的电动汽车充放电调度模型。利用蒙特卡洛模拟法模拟出电动汽车负荷曲线&#xff0c;并求解出无序充电功率曲线和有序充电曲线&#xff0c;该模型在电动汽车个…

思维题锻炼-最小数字

思维题锻炼-最小数字 目录题目描述输入样例输出样例代码 目录 题目描述 给一串数字&#xff0c;求出最小的整数&#xff0c;不能是原数字串中的数字&#xff0c;也不能由数字串中的数字相加得到 输入样例 5 2 1输出样例 4代码 #include<bits/stdc.h> #include<s…

逆向案例十六——简单webpack逆向,财联社信息

网址链接&#xff1a;财联社A股24小时电报-上市公司动态-今日股市行情报道 数据包sign参数为加密&#xff0c;可以直接搜索找参数的位置&#xff0c;搜索不到的情况下&#xff0c;在断点跟栈&#xff1a; 确定js文件所在位置&#xff0c;并打上断点。 点击加载刷新页面。可以发…

REST API实战演练之JavaScript使用Rest API

咱们前面讲了一下如何创建REST API 假期别闲着&#xff1a;REST API实战演练之创建Rest API-CSDN博客 又讲了java客户端如何使用REST API 假期别闲着&#xff1a;REST API实战演练之客户端使用Rest API-CSDN博客 接下来咱们看看JavaScript怎么使用REST API。 一、新建一个…

vue3第十七节(特殊属性key,is,ref)

本节说明介绍vue3中的特殊属性&#xff1a;key、is、ref&#xff1b; 其中key、is用法vue2、vue3基本一致&#xff0c;而ref在vue3 中与vue2中出入较大 1、key作用与用途 vue3与vue2的diff虚拟算法不相同&#xff0c;后续章节会专门介绍 vue使用虚拟算法时&#xff0c;用于标…