Identify high CPU consumed thread for Java app
Posted
by Vincent Ma
on Oracle Blogs
See other posts from Oracle Blogs
or by Vincent Ma
Published on Fri, 30 Nov 2012 15:46:41 +0000
Indexed on
2012/11/30
17:12 UTC
Read the original article
Hit count: 250
/Java /Java EE
Following java code to emulate busy and Idle thread and start it.
import java.util.concurrent.*;
import java.lang.*;
public class ThreadTest {
public static void main(String[] args) {
new Thread(new Idle(), "Idle").start();
new Thread(new Busy(), "Busy").start();
}
}
class Idle implements Runnable {
@Override
public void run() {
try {
TimeUnit.HOURS.sleep(1);
} catch (InterruptedException e) {
}
}
}
class Busy implements Runnable {
@Override
public void run() {
while(true) {
"Test".matches("T.*");
}
}
}
Using Processor Explorer to get this busy java processor and get Thread id it cost lots of CPU
see the following screenshot:
Cover to 4044 to Hexadecimal is oxfcc.
Using VistulVM to dump thread and get that thread.
see the following screenshot
In Linux you can use top -H to get Thread information.
That it!
Any question let me know. Thanks
© Oracle Blogs or respective owner