在线程A持有锁L并想获得锁M的同时,线程B持有锁M并想尝试获得锁L,那么这两个线程将永远的等待下去。这就是最简单的线程死锁
public class LeftRightDeadlock{
private final Object left = new Object();
private final Object right = new Objet();
public void leftRight(){
synchronized(left){
synchronized(right){
doSomething();
}
}
}
public void rightLeft(){
synchronized(right){
synchronized(left){
doSomethingEles();
}
}
}
}