JVM调优之jstack找出发生死锁的线程
1、執(zhí)行死鎖程序
2、執(zhí)行?jstack -l 21733 | more
結(jié)果如下:
死鎖程序:
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("start the example------");
final Object obj_1 = new Object();
final Object obj_2 = new Object();
Thread t1 = new Thread("t1") {
@Override
public void run() {
synchronized (obj_1) {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
synchronized (this) {
}
synchronized (obj_2) {
System.out.println("thread t1 done");
}
}
}
};
Thread t2 = new Thread("t2") {
public void run() {
synchronized (obj_2) {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
synchronized (obj_1) {
System.out.println("thread t2 done.");
}
}
}
};
t1.start();
t2.start();
}
轉(zhuǎn)載于:https://www.cnblogs.com/chengJAVA/p/5822402.html
總結(jié)
以上是生活随笔為你收集整理的JVM调优之jstack找出发生死锁的线程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单色半透明-兼容IE7
- 下一篇: apache重写规则转Nginx