A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© cuixiaoyou 中级黑马   /  2015-3-7 20:34  /  914 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Test{
     private boolean flag;
     Test(boolean flag){
         this.flag = flag;
     }
    public void run(){
          if(flag){
              while(true){
                 synchronized(MyLock.locka){
                       System.out.println(" if locka ");
                       synchronized(MyLock.lockb){
                          System.out.println(" if lockb");
                        }
                }
            }
         }
         else{
               while(true){
                 synchronized(MyLock.lockb){
                       System.out.println(" else lockb ");
                       synchronized(MyLock.locka){
                          System.out.println(" else locka");
                        }
                }
            }

         }
    }
}

class MyLock{
      static Object locka = new Object();
      static Object lockb = new Object();
}

public class TestDeadLock{
    public static void main(String args[]){
          Thread t1 = new Thread(new Test());
          Thread t2 = new Thread(new Test());
          t1.start();
          t2.start();
    }
}

评分

参与人数 1黑马币 +20 收起 理由
hejinzhong + 20 你这不能搞成代码模式,看着舒服!.

查看全部评分

2 个回复

倒序浏览
嗯,谢谢!刚上的论坛,没有经验:)
回复 使用道具 举报
你Test()里面不传参数怎么会死锁呢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马