繁体   English   中英

线程Java的活动时间

[英]Active Time of Thread Java

如何获取Thread实际处于运行状态的活动时间。 减去所有等待和睡眠时间。

我似乎没有在Thread API中找到任何能够提供所需结果的内容。

如果不是确切的代码任何想法或伪代码将是伟大的开始。

谢谢

谢谢assylias ThreadMXBean为我工作..以下是我所做的示例代码。

@Override
public void run() {
   System.out.println(Thread.currentThread().getName());
   try {
    for(int i = 999999999; i > 0; i--){}
    Thread.sleep(5000);
    ThreadMXBean threadBean = ManagementFactory.getThreadMXBean();
    long threadCpuTime = threadBean.getCurrentThreadCpuTime();
    System.out.println(Thread.currentThread().getName() + " :: " + threadCpuTime);
   } catch (InterruptedException e) {
    e.printStackTrace();
   return;
   }
}

我只是睡了5秒钟来检查它是否被添加到CPU时间。 它没有添加。 我也把空循环放在一起,这样处理就需要一些时间。

Here's Output
Thread-1 :: 15600200
Thread-4 :: 15700100
Thread-3 :: 15600100
Thread-0 :: 15500100
Thread-2 :: 0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM