提示:需要基础环境和配置上java-home
提示:这里可以添加本文要记录的大概内容:
需要配置有java-home,或者进入对应命令目录进行执行。需要的命令有 top , javac , java , jstack , cat 等
提示:以下是本篇文章正文内容,下面案例可供参考
public class Test {
public static void main(String[] args) {
while (true) {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
System.out.println(true);
}
}
}
javac Test.java

代码如下(示例):
java Test

提示:可以使用top 或者 jps -l 命令查看对应的数据
top

或
[root@wcuu-FKftVeGaFemEIy1Ktk9W ~]# jps -l
17093 sun.tools.jstat.Jstat
18392 sun.tools.jps.Jps
19226 Test
当前的 PID 为 19226
然后通过 19226 进一步执行命令,获取线程数据
top -Hp 19226

这里看到对应消耗较多的是 19227
使用 19227 十进制,转换为16进制为 4B1B

将19226当前内容,进行下载到本地,名称为 19226.stack
jstack -l 19226 > ./19226.stack

忽略大小写方式,查询对应运行位置
cat 19226.stack | grep -i '4B1B' -C 8

以这样的方式,找到了对应当前,服务运行的位置。