首页 > 其他分享 >JVM问题定位工具

JVM问题定位工具

时间:2024-08-07 12:07:01浏览次数:9  
标签:lang 定位 java Thread UmsAdminController 线程 JVM println 工具

1.jstack
可以分析java进程中,线程死锁/线程问题
案例1死锁
`@ApiOperation("登录")
@PostMapping("/login")
@ResponseBody
public CommonResult login(
@RequestBody UmsAdminLoginParam umsAdminLoginParam
) {
new Thread(() -> {
synchronized (lockA) {
try {
System.out.println("线程1开始运行");
Thread.sleep(2000);
} catch (InterruptedException e) {
}
synchronized (lockB) {
System.out.println("线程1运行结束
");
}
}
}).start();

    new Thread(() -> {
        synchronized (lockB) {
            try {
                System.out.println("线程2开始运行========");
                Thread.sleep(2000);
            } catch (InterruptedException e) {
            }
            synchronized (lockA) {
                System.out.println("线程2结束运行========");
            }
        }
    }).start();

    System.out.println("主线程运行结束========");

// try {
// String token = adminService.login(umsAdminLoginParam.getUsername(),umsAdminLoginParam.getPassword());
// return CommonResult.success(token);
// } catch (Exception e) {
//
// }
return CommonResult.failed("执行死锁代码");
}`
执行jstack -l pid即可查看死锁代码相关信息
Java stack information for the threads listed above:

"Thread-71":
at com.mall.kaop.controller.UmsAdminController.lambda$login$1(UmsAdminController.java:85)
- waiting to lock <0x0000000732999d80> (a java.lang.Object)
- locked <0x0000000732999d70> (a java.lang.Object)
at com.mall.kaop.controller.UmsAdminController$$Lambda$704/1619667033.run(Unknown Source)
at java.lang.Thread.run(Thread.java:748)
"Thread-70":
at com.mall.kaop.controller.UmsAdminController.lambda$login$0(UmsAdminController.java:72)
- waiting to lock <0x0000000732999d70> (a java.lang.Object)
- locked <0x0000000732999d80> (a java.lang.Object)
at com.mall.kaop.controller.UmsAdminController$$Lambda$703/1177482355.run(Unknown Source)
at java.lang.Thread.run(Thread.java:748)

Found 1 deadlock.
2.jmap
获取堆,非堆内存,永久代信息

标签:lang,定位,java,Thread,UmsAdminController,线程,JVM,println,工具
From: https://www.cnblogs.com/jichenghui/p/18346788

相关文章

  • PLEK升级了:PLEKv2工具在RNA序列分析中的卓越表现
    摘要:使用PLEKv2识别鉴定lncRNA,只需要输入RNA的序列(fa文件)即可。 在生物信息学领域,长非编码RNA(lncRNA)和信使RNA(mRNA)的准确区分对于理解基因调控机制至关重要。随着深度学习技术的兴起,我们迎来了PLEKv2——PLEK工具的全新升级版,它在RNA序列分类精度方面取得了显著提高。这里探......
  • 什么是核心工具要求,为什么在IATF 16949:2016中如此重要?
    核心工具是在汽车行业质量管理中广泛应用的七种基本工具,也被称为“核心工具七法”或“七大工具”。这些核心工具包括:流程流程图(ProcessFlowDiagram)、实验设计(DesignofExperiments)、散点图(ScatterPlot)、直方图(Histogram)、控制图(ControlChart)、故障模式和影响分析(FMEA)以及......
  • [环境搭建]编码工具-lombok.jar引入环境
    UAPStudio.ini里添加:-Dfile.encoding=UTF-8-javaagent:lombok.jar-Xbootclasspath/a:lombok.jarlombok.jar放在UAPStudio.ini里同一级目录Eclipse报告内存不足和PermSizeSpace错误,Eclipse死掉的解决办法:在eclipse.ini配置文件总加上以下两行:-XX:PermSize=128M-XX:MaxP......
  • 教程 | USB-IF USBCV软件工具使用指南
    一.概述CVTest是基于USBCV软件工具的合规性测试,可以验证设备是否符合USB规范和标准。USBCV则是USB-IF提供的一款免费USB装置测试软体,简要做USB2.0及USB3.0装置相关测试。本文将基于NXPLPC5516HID类键盘简要讲解USBCV中公有USB请求测试及HID类测试步......
  • ArcPro (3.2+) Python 脚本工具中从 .atbx Toolbox 相对导入本地模块
    我设置了一个库和关联的ArcGISToolbox,以便:/root├──Toolbox.atbx├──mylib│└──my_function.py├──my_tools│└──my_gp_script.py我将代码存储库的开发克隆保存在公司共享服务器上的一个位置,并在GitHub上托管一份副本。当我进行更新时,我会......
  • JMeter 性能测试工具入门与实践
    简介ApacheJMeter是一款流行的开源性能测试工具,广泛用于测试Web应用和各种服务的性能。它支持多种协议和技术,如HTTP,HTTPS,SOAP,REST,JMS等。JMeter不仅可以用于性能测试,还可以用于负载测试、压力测试和功能测试。安装与配置安装JMeter访问ApacheJMeter的官方网......
  • 【JVM基础15】——实践-JVM调优的参数有哪些?
    目录1-引言:2-⭐核心:2-1设置堆空间大小2-2虚拟机栈的设置2-3年轻代Eden区和两个Survivor区的大小比例2-4年轻代晋升老年代阈值2-5设置垃圾回收器3-小结:3-1JVM调优的参数有哪些?1-引言:对于JVM调优,主要就是调整年轻代、老年代、元空间的内存空间大小......
  • LangChain与CI工具的完美融合:自动化开发的新篇章
    LangChain与CI工具的完美融合:自动化开发的新篇章在软件开发的快速迭代中,持续集成(CI)已成为提升开发效率和保证代码质量的关键实践。LangChain作为一个先进的编程辅助工具,它的集成到各种CI工具中,为开发者提供了无缝的代码生成和测试流程。本文将深入探讨LangChain支持的CI工......
  • Docker-Compose单机容器集群编排工具
    目录容器编排管理与传统的容器管理的区别什么Docker-Compose?Docker-Compose的简介Docker-Compose的作用Docker-compose的三大概念什么YAML文件?YAML文件介绍使用YAML时的注意事项YAML文件的基本数据结构Docker-Compose配置常用字段Docker-Compose常用命令我们知道......
  • Java中的应用监控与日志分析工具选型:从Prometheus到ELK Stack
    Java中的应用监控与日志分析工具选型:从Prometheus到ELKStack大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在现代软件开发中,应用监控和日志分析是确保系统稳定性和性能的重要组成部分。本文将探讨在Java项目中使用的监控和日志分析工具,重点介绍P......