
一、 Linux如何通过java进程(简单的实现)定位系统资源占用过多的问题,首先在linux文件夹中创建TheradDemo.java文件,该文件显然将以10行无休止的循环结束,这将在此时占用大量的CPU资源。以下linux命令用于定位此问题
import java.util.Scanner;
public class ThreadDemo1{
public static void main(String[] args) throws Exception{
System.out.println(" Thread start...");
Thread t = new Thread(new Runnable(){
@Override
public void run(){
for(;;){ //10行-死循环处!!!!!!!
}
}
});
t.start();
t.join();
System.out.println("Thread end ...");
}}


编译并执行上述Java文件,

jps / ps将当前进程的PID视为4641


top -p 4641查看当前进程的资源使用情况


top -Hp 4641查看当前进程中所有线程的使用情况(请参阅CPU使用率最高的线程465 0)



jstack 4641输出当前进程中所有线程的调用堆栈信息
(检查与占用最高CPU的线程号4650相等的nid(十六进制0X122A),并找到top命令输出的资源占用率高的线程的调用堆栈信息)

在调用堆栈信息的顶部找到代码提示(代码文件和行号)。关于java代码问题的具体分析
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-319122-1.html
有几条命