【发布时间】:2009-06-16 12:43:27
【问题描述】:
ThreadMXBean 有两种检索线程时间使用情况的方法:
两者有什么区别?
更新 2:如果我能够链接到 javadocs,请不要引用它们 - 我已经阅读过它们。
更新:这是我尝试使用的一些代码来了解这些时间的含义,但收效甚微:
ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
threadMXBean.setThreadContentionMonitoringEnabled(true);
long mainThreadId = getMainThreadId(threadMXBean);
logTimes("Start", threadMXBean, mainThreadId);
URL url = new URL("https://hudson.dev.java.net");
URLConnection connection = url.openConnection();
connection.getContent();
logTimes("After loading", threadMXBean, mainThreadId);
输出是:
Start Tue Jun 16 16:13:40 EEST 2009 Cpu time : 80, user time: 60, waited: 0, blocked: 0
After loading Tue Jun 16 16:13:43 EEST 2009 Cpu time : 1,020, user time: 960, waited: 0, blocked: 0
因此 cpu 和用户时间之间的差异从 20 毫秒增加到 60 毫秒。那是因为使用 HttpUrlConnection 确实包含一些网络 I/O?
【问题讨论】:
-
我更新了我的帖子,以包含有关 WIN32 下的值含义的更多信息。