public class DeadLockDemo {
public static void main(String[] args) {
String LockA = "lockA";
String LockB = "lockB";
new Thread(new MyThread(LockA,LockB),"A").start();
new Thread(new MyThread(LockB,LockA),"B").start();
}
}
class MyThread implements Runnable{
private String lockA;
private String lockB;
public MyThread(String lockA, String lockB) {
this.lockA = lockA;
this.lockB = lockB;
}
@Override
public void run() {
synchronized (lockA){
System.out.println(Thread.currentThread().getName()+"我得到了LockA");
synchronized (lockB){
System.out.println(Thread.currentThread().getName()+"我得到了LockB");
}
}
}
}
- jps :查看java 相关PID
- jstack pid :查看pid的堆栈信息,排查问题