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?