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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 枫儿 金牌黑马   /  2013-10-10 16:31  /  1260 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 枫儿 于 2013-10-10 16:37 编辑
  1. class rec//共享资源
  2. {
  3.         String name;
  4.         String age;
  5.         boolean flag=false;
  6. }

  7. class Input implements Runnable//往资源里传值
  8. {
  9.         private rec r;
  10.         Input(rec r)
  11.         {
  12.                 this.r=r;
  13.         }
  14.         public void run()
  15.         {
  16.         int x=0;
  17.         while (true)
  18.         {
  19.                 synchronized(r)
  20.                 {
  21.                 if (r.flag)
  22.                         try{wait();}catch(Exception e){}
  23.                 if(x==0)
  24.                 {
  25.                 r.name="make";
  26.                 r.age="Man";
  27.                 }
  28.                 else
  29.                 {
  30.                 r.name="扣扣";
  31.                 r.age="女女女";
  32.                 }
  33.                 x=(x+1)%2;
  34.                 r.flag=true;
  35.                 r.notify();
  36.                 }
  37.         }
  38.         }
  39. }

  40. class out implements Runnable//打印资源里的值
  41. {
  42.         private rec r;
  43.         out(rec r)
  44.         {
  45.         this.r=r;
  46.         }

  47.         public void run()
  48.         {
  49.                 while (true)
  50.                 {
  51.                         synchronized(r)
  52.                         {
  53.                                 if(!r.flag)
  54.                                 try{wait();}catch(Exception e){}
  55.                                 System.out.println(r.name+"...."+r.age);
  56.                                 r.flag=false;
  57.                                 r.notify();
  58.                         }
  59.                 }
  60.         }
  61. }

  62. class dxctx1
  63. {
  64.      public static void main(String[] args)
  65.         {
  66.      rec r = new rec();

  67.      Input in = new Input(r);
  68.      out o = new out(r);
  69.      Thread t1 = new Thread(in);
  70.      Thread t2 = new Thread(o);
  71.      t1.start();
  72.      t2.start();
  73.      }
  74. }
复制代码
上面代码为啥运行时还是一片、一片的打印呢???

3 个回复

倒序浏览
To 金牌黑马 2013-10-10 16:34:17
沙发
仔细看看视频。
回复 使用道具 举报

嗯。本帖结束。检查出wait没标识r
回复 使用道具 举报
手都好快....
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马