死锁程序

来源:互联网 发布:dchp mac地址 租约 编辑:程序博客网 时间:2024/06/12 22:18

死锁程序:(死锁代码)

public classMyLock {

   // 创建两把锁对象

   public static final Object objA =new Object();

   public static final Object objB =new Object();

}

 

public classDieLock extendsThread {

 

   private boolean flag;

 

   public DieLock(boolean flag) {

      this.flag = flag;

   }

 

   @Override

   public void run() {

      if (flag) {

         synchronized (MyLock.objA) {

            System.out.println("if objA");

            synchronized (MyLock.objB) {

                System.out.println("if objB");

            }

         }

      }else{

         synchronized (MyLock.objB) {

            System.out.println("else objB");

            synchronized (MyLock.objA) {

                System.out.println("else objA");

            }

         }

      }

   }

}

 

public classDieLock extendsThread {

 

   private boolean flag;

 

   public DieLock(boolean flag) {

      this.flag = flag;

   }

 

   @Override

   public void run() {

      if (flag) {

         synchronized (MyLock.objA) {

            System.out.println("if objA");

            synchronized (MyLock.objB) {

                System.out.println("if objB");

            }

         }

      }else{

         synchronized (MyLock.objB) {

            System.out.println("else objB");

            synchronized (MyLock.objA) {

                System.out.println("else objA");

            }

         }

      }

   }

}

运行结果:

ifobjA

elseobjB

0 0