A Java 6 megjelenésével több belső információhoz férhetünk hozzá futásidőben, amelyek közül érdekes lehet lekérdezni a szálak adatait, beleértve olyan metrikát, mint a felhasznált CPU idő.
...
A titok a ManagementFactory statikus metódusai körül van, innen tudjuk lekérdezni a ThreadMXBean példányt, amelyből le tudjuk kérdezni az éppen létező szálak adatait:
...
Code Block | ||||
---|---|---|---|---|
| ||||
ThreadMXBean threads = ManagementFactory.getThreadMXBean();
|
...
ThreadInfo[] threadInfos = threads.getThreadInfo(threads.getAllThreadIds());
|
...
for (int i = 0; i < threadInfos.length; i++)
|
...
{
|
...
long nanoTime = threads.getThreadCpuTime(threadInfos[i].getThreadId());
|
...
System.out.println("cpuTime[" + threadInfos[i].getThreadName() + "]: " + nanoTime); |
...
} |
A CPU időn túl több metrika is felderíthető, érdemes megtekinteni a ThreadMXBean illetve a ThreadInfo metódusait.