2015-06-29 3 views
4

Как получить активное время Thread, для которого оно было фактически запущено. Минус все время ожидания и сна.Активное время Thread Java

Я, похоже, не нашел ничего в Thread API, который дает мне желаемые результаты.

Если не точный код, любые идеи или псевдокоды будут отличным началом.

Благодаря

+3

Вы можете получить общее процессорное время с [это] (http://docs.oracle.com/javase/8/docs/api/java/lang/management/ThreadMXBean.html#getCurrentThreadCpuTime--) – assylias

+1

void run() {long startTime = System.currentTimeMillis(); // TODO: WORK long endTime = System.currentTimeMillis(); System.out.println ((endTime-startTime);} // это можно использовать только для расчета того, как работает длительная работа –

ответ

3

Благодаря assylias ThreadMXBean работал для меня .. Вот пример кода, что я сделал.

Я поставлю спать 5 секунд, чтобы проверить, было ли оно добавлено к процессорному времени. Он не был добавлен. Кроме того, я запускаю пустой цикл, так что обработка занимает некоторое время.

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