Java 多线程 死锁Demo

 

 

class  DLockThread extends  Thread{

     static  Object a = new  Object();

     static  Object b = new  Object();

     String firstObj = "" ;

     public  DLockThread(String firstObj, String threadName){

         this .firstObj = firstObj;

         super .setName(threadName);

     }

     

     public  void  run() {

         while ( true )

         if ( "a" .equals(firstObj)){

             synchronized (a){ //获取对象a的锁,然后去获取对象b的锁

                 System.out.println(Thread.currentThread().getName()+ "--->" +a.toString());

                 synchronized (b){

                     System.out.println(Thread.currentThread().getName()+ "--->" +b.toString());

                 }

             }

         } else  if ( "b" .equals(firstObj)) {

             synchronized (b){

                 System.out.println(Thread.currentThread().getName()+ "--->" +b.toString());

                 synchronized (a){

                     System.out.println(Thread.currentThread().getName()+ "--->" +a.toString());

                 }

             }

         }

     }

}

 

public  class  DLockThreadTest{

     public  static  void  main(String[] args) {

         DLockThread t1 = new  DLockThread( "a" , "t1" );

         DLockThread t2 = new  DLockThread( "b" , "t2" );

         t1.start();

         t2.start();

     }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值