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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. class Ticket implements Runnable
  2. {
  3.         private  int num = 100;
  4.         Object obj = new Object();
  5.         boolean flag = true;
  6.         public void run()
  7.         {


  8.                 if(flag)
  9.                         while(true)
  10.                         {
  11.                                 synchronized(obj)
  12.                                 {
  13.                                         show();
  14.                                 }
  15.                         }
  16.                 else
  17.                         while(true)
  18.                                 this.show();
  19.         }

  20.         public synchronized void show()
  21.         {

  22.                 synchronized(obj)
  23.                 {
  24.                         if(num>0)
  25.                         {
  26.                                 try{Thread.sleep(10);}catch (InterruptedException e){}
  27.                                
  28.                                 System.out.println(Thread.currentThread().getName()+".....sale...."+num--);
  29.                         }
  30.                 }
  31.         }
  32. }


  33. class Demo71
  34. {
  35.         public static void main(String[] args)
  36.         {
  37.                 Ticket t = new Ticket();
  38.                 Thread t1 = new Thread(t);
  39.                 Thread t2 = new Thread(t);

  40.                 t1.start();
  41.                 try{Thread.sleep(10);}catch(InterruptedException e){}
  42.                 t.flag = false;
  43.                 t2.start();
  44.         }
  45. }
复制代码


上面代码,的运行产生死锁的运行过程是怎么样的?能否比较详细的罗列一个运行步骤,1 2 3  这样的步骤。
先谢过。

0 个回复

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