publicclassDeadLockTest{publicstaticvoidmain(String[] args){
C a =newC();
C b =newC();
A aClass =newA(a, b);
B bClass =newB(a, b);newThread(aClass).start();newThread(bClass).start();}}classAimplementsRunnable{private C a;private C b;A(C a, C b){this.a = a;this.b = b;}publicvoidrun(){synchronized(a){try{
Thread.sleep(1000);
System.out.println("锁住a");synchronized(b){
System.out.println("锁住b");}}catch(Exception e){
e.printStackTrace();}}}}classBimplementsRunnable{private C a;private C b;B(C a, C b){this.a = a;this.b = b;}publicvoidrun(){synchronized(b){try{
Thread.sleep(1000);
System.out.println("锁住b");synchronized(a){
System.out.println("锁住a");}}catch(Exception e){
e.printStackTrace();}}}}classC{}