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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 ka宾 于 2013-12-1 16:38 编辑
  1. class DeadLock
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 new Thread(new DeadLockTest(false)).start();
  6.                 new Thread(new DeadLockTest(true)).start();
  7.         }
  8. }

  9. class MyLock
  10. {
  11.         static Object lock_a = new Object();
  12.         static Object lock_b = new Object();
  13. }

  14. class DeadLockTest implements Runnable
  15. {
  16.         private int x,y;
  17.         static Boolean boo;
  18.         DeadLockTest(Boolean value)
  19.         {
  20.                 boo = value;
  21.         }
  22.         public void run()
  23.         {
  24.                 if(boo)
  25.                 {
  26.                         while(true)
  27.                         {
  28.                                 x++;
  29.                                 synchronized(MyLock.lock_a)
  30.                                 {
  31.                                         System.out.println("线程_1...lock_a..."+x);
  32.                                         synchronized(MyLock.lock_b)
  33.                                         {
  34.                                                 System.out.println("线程_1...lock_b..."+x);
  35.                                         }
  36.                                 }
  37.                         }
  38.                 }else
  39.                 {
  40.                         while(true)
  41.                         {
  42.                                 y++;
  43.                                 synchronized(MyLock.lock_b)
  44.                                 {
  45.                                         System.out.println("线程_2...lock_b..."+y);
  46.                                         synchronized(MyLock.lock_a)
  47.                                         {
  48.                                                 System.out.println("线程_2...lock_a..."+y);
  49.                                         }
  50.                                 }
  51.                         }
  52.                 }
  53.         }
  54. }


复制代码
运行结果是 线程1 无限地运行...怎么没有 线程2 呢?{:soso_e103:} 先谢谢各位老师了~!
-------------------------------------------------------------------
有人提醒我了,原来boo值写了static 。。。。我自己都觉得奇怪{:soso_e153:}

评分

参与人数 1技术分 +1 收起 理由
HM代景康 + 1 赞一个!

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马