如何查看java进程中每个线程的cpu使用率百分比
所以,我有一个多线程的程序,出于某种原因,我不知道为什么,CPU使用率会随机增加。我需要知道哪个类或线程正在使用CPU如何查看java进程中每个线程的cpu使用率百分比,java,multithreading,cpu-usage,Java,Multithreading,Cpu Usage,所以,我有一个多线程的程序,出于某种原因,我不知道为什么,CPU使用率会随机增加。我需要知道哪个类或线程正在使用CPU ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean(); for(Long threadID : threadMXBean.getAllThreadIds()) { ThreadInfo info = threadMXBean.getThreadInfo(threadID); log
ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
for(Long threadID : threadMXBean.getAllThreadIds()) {
ThreadInfo info = threadMXBean.getThreadInfo(threadID);
logging.info("Thread name: " + info.getThreadName());
logging.info("Thread state: " + info.getThreadState());
long cpuTime= threadMXBean.getThreadCpuTime(threadID);
logging.info(String.format("CPU time: %.2f s",cpuTime==0?cpuTime/1000000000d));
}
我需要打印这样的东西
2019-10-08 20:47:41 INFO - thread name: xxxx
2019-10-08 20:47:41 INFO - thread cpu percent: xx,x%
好的,那问题是什么?我需要打印进程中所有线程的cpu使用情况。如果没有诸如h top之类的命令,我无法访问应用程序之外的控制台。请查看以下问题的答案:;它涵盖了这一点和其他一些相关的话题。我已经看过这篇文章,但它对我没有帮助