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
Таким образом, разница между процессором и временем пользователя увеличилась с 20 до 60 миллисекунд. Это потому, что использование HttpUrlConnection включает в себя некоторые сетевые операции ввода-вывода?