示例
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(); }}
