---
title: 基于DevKit Java性能分析工具的调优实践——死锁问题-官方技术文章-鲲鹏社区
description: 本文使用DevKit Java性能优化工具对运行中的Java程序进行在线分析和采样分析，找到程序中的死锁问题，并根据分析结果进行优化修改，从而实现Java程序最佳运行。
keywords: DevKit,Java,性能分析工具,的调优实践,死锁问题,官方技术文章,鲲鹏社区,调优概述
url: https://www.hikunpeng.com/developer/techArticles/20251229-3?envFlag=1
section: (其他)
---

# 基于DevKit Java性能分析工具的调优实践——死锁问题-官方技术文章-鲲鹏社区

URL: https://www.hikunpeng.com/developer/techArticles/20251229-3?envFlag=1
描述: 本文使用DevKit Java性能优化工具对运行中的Java程序进行在线分析和采样分析，找到程序中的死锁问题，并根据分析结果进行优化修改，从而实现Java程序最佳运行。
关键词: DevKit,Java,性能分析工具,的调优实践,死锁问题,官方技术文章,鲲鹏社区,调优概述

官方技术文章 [了解详情](https://www.hikunpeng.com/zh/developer/techArticles)

基于DevKit Java性能分析工具的调优实践——死锁问题

基于DevKit Java性能分析工具的调优实践——死锁问题

DevKitjavajdk性能调优

发表于 2025/12/29

0

# 1 调优概述

鲲鹏DevKit是一款提供涵盖迁移、测试、性能调优及系统诊断等各环节的开发使能工具集。其中，DevKit Java性能分析工具是针对基于鲲鹏的服务器上运行的Java程序的性能分析和优化工具，能图形化显示Java程序的堆、线程、锁、垃圾回收等信息，收集热点函数、定位程序瓶颈点，帮助用户采取针对性优化。本文使用Java性能优化工具对运行中的Java程序进行在线分析和采样分析，找到程序中的死锁问题，并根据分析结果进行优化修改，从而实现Java程序最佳运行。

# 2 环境要求

| 项目 | 说明 |
| --- | ---|
| 服务器 | TaiShan 200服务器（型号2280） |
| CPU | Kunpeng 920 |
| OS | CentOS 7.6 |
| 调优工具 | Kunpeng DevKit Java性能分析工具 |

# 3 前提条件

1. 服务器和操作系统正常运行。
2. PC端已经安装SSH远程登录工具
3. 需要优化的Java程序

# 4 调优思路

1. 使用Java性能优化工具对Java进程进行在线分析；
2. 使用Java性能优化工具对Java进程进行采样分析
3. 针对性能的瓶颈点进行性能优化；
4. 观察优化后的Java程序，判断问题是否解决

# 5 调优过程

## 5.1对程序进行在线分析，在概览页签下观察每种状态的线程数

发现一直有两个线程处于阻塞状态，有死锁的嫌疑

## 5.2切换到线程页签，搜索阻塞状态的线程

观察一段时间发现发两个线程一直处于阻塞状态，执行多次线程转储操作。

## 5.3切换到锁分析图页签

发现两个阻塞中的线程发生了死锁

## 5.4切换到线程转储页签

根据线程转储信息得到死锁的相关信息

## 5.5发现问题并解决

根据线程转储提供的相关信息，搜索代码中的相关项，本案例的demo比较简单，

可以看到程序的确发生了死锁，根据实际情况进行修改。

本demo是因为两个线程持有锁的顺序不当导致

修改后的代码：

## 5.6程序优化后

调整两个线程持有锁的顺序后，程序不再发生死锁。

# 6 实践总结

Java中的死锁问题一旦发生很难定位具体的代码位置，因为程序干扰因素比较多，所以涉及加锁解锁逻辑的地方一定要仔细。建议如果涉及加锁的代码逻辑，程序是通过新起线程去执行或者是在线程池中执行，一定要给线程设置有特定业务逻辑的名称，一旦发生问题也好定位。

在进行其他程序调优时，需要根据鲲鹏DevKit性能优化工具采集分析的实际结果和对应的优化建议进行调优操作。具体的调优思路可以参考本次实践。

本页内容
