高CPU Java应用分析
2024-09-08 17:54:24
模拟CPU 40%左右
import java.util.concurrent.CountDownLatch;
public class Main extends Thread {
private CountDownLatch c;
public Main(String name, CountDownLatch c) {
super(name);
this.c = c;
}
@Override
public void run() {
for (int i = 0; i < 500000000; i++) {
System.out.print(i);
}
c.countDown();
}
public static void main(String[] args) throws InterruptedException {
CountDownLatch c = new CountDownLatch(1);
Main thread1 = new Main("thread1", c);
thread1.start();
c.await();
}
}
后台运行jar包
java -jar maven_test.jar &
安装jstack
yum install java-1.8.0-openjdk-devel.x86_64 -y
找到占用CPU最高的进程是Java进程59635
top
找到占用CPU最高的线程59647
top -H -p 59635
输出线程PID 59647对应的16进制数是e8ff
printf "%x\n" 59647
jstack查看Java进程中线程信息,过滤e8ff相关的线程信息
jstack 59635 | grep e8ff -A 20
根据jstack的输出,主流程也是一个线程
最新文章
- Webpack从入门到上线
- 关于问题ld:library not found for -lXXX的错误
- 【转载】DOS 系统和 Windows 系统有什么关系?为什么windows系统下可以执行dos命令?
- css个人总结
- 在Django中进行注册用户的邮件确认
- [Android Pro] root用户删除文件提示:Operation not permitted
- 关于SAP的视图类型
- (转载)Javascript定义类(class)的三种方法
- React组件开发
- openerp学习笔记 context 的应用
- [Javascript] Proper use of console.assert in JavaScript
- Linux下查看进程(程序)启动时的环境变量
- 基于visual Studio2013解决算法导论之029二叉搜索树
- android屏蔽home键的实现
- Linux系统下,在文件中查找某个字符串
- DDD实战进阶第一波(十四):开发一般业务的大健康行业直销系统(订单上下文应用服务用例与接口)
- Shell学习之Bash变量详解(二)
- Codeforces Round #514 (Div. 2) E. Split the Tree(倍增+贪心)
- 对于beta发布的评论
- mac下phpstrom安装主题和主题推荐