示例
package com.thinking.in.java.course.chapter21.deadLock2;
public class Aoo {
private Voo voo;
public Aoo(Voo voo){
this.voo = voo;
}
public synchronized void a1(){
System.out.println("a1------");
voo.v1();
}
public synchronized void a2(){
System.out.println("a2------");
}
}
//--------------------------------------------
package com.thinking.in.java.course.chapter21.deadLock2;
public class Voo {
private Aoo aoo;
public void setAoo(Aoo aoo) {
this.aoo = aoo;
}
public synchronized void v1(){
System.out.println("v1======");
}
public synchronized void v2(){
System.out.println("v2======");
aoo.a2();
}
}
//--------------------------------------
public class DeadLock2 {
public static void main(String[] args) {
final Voo voo = new Voo();
final Aoo aoo = new Aoo(voo);
voo.setAoo(aoo);
new Thread(()->{
while (true){
voo.v2();
}
}).start();
new Thread(()->{
while (true){
aoo.a1();
}
}).start();
}
}
