黑马程序员技术交流社区

标题: 等待唤醒机制 [打印本页]

作者: kemeng    时间: 2015-3-16 12:46
标题: 等待唤醒机制

  1. class Res
  2. {
  3.         String name;
  4.         String sex;
  5.         boolean flag=false;
  6. }

  7. class Input implements Runnable
  8. {
  9.         private Res r;
  10.         //Object obj=new Object();
  11.         Input(Res r)
  12.         {
  13.                 this.r=r;
  14.         }
  15.         public void run()
  16.         {
  17.                 int x=0;
  18.                 while(true)
  19.                 {
  20.                         synchronized(r)
  21.                         {
  22.                                 if(r.flag)
  23.                                         try
  24.                                         {
  25.                                                 r.wait();
  26.                                         }
  27.                                         catch (Exception e)
  28.                                         {
  29.                                         }
  30.                                 if(x==0)
  31.                                 {
  32.                                         r.name="zhansan";
  33.                                         r.sex="nan";
  34.                                 }
  35.                                 else
  36.                                 {
  37.                                         r.name="lisi";
  38.                                         r.sex="nvnvnvnvnv";
  39.                                 }
  40.                                 x=(x+1)%2;
  41.                                 r.flag=true;
  42.                                 r.notify();
  43.                         }
  44.                 }
  45.         }
  46. }

  47. class Output implements Runnable
  48. {
  49.         private Res r;
  50.         //Object obj=new Object();
  51.         Output(Res r)
  52.         {
  53.                 this.r=r;
  54.         }
  55.         public void run()
  56.         {
  57.                 while(true)
  58.                 {
  59.                         synchronized(r)
  60.                         {
  61.                                 if(r.flag==false)
  62.                                         try
  63.                                         {
  64.                                                 r.wait();
  65.                                         }
  66.                                         catch (Exception e)
  67.                                         {
  68.                                         }
  69.                                 System.out.println(r.name+"....."+r.sex);
  70.                                 r.flag=false;
  71.                                 r.notify();
  72.                         }
  73.                 }
  74.         }
  75. }

  76. class Demo
  77. {
  78.         public static void main(String[] args)
  79.         {
  80.                 Res r=new Res();
  81.                 Input i=new Input(r);
  82.                 Output o=new Output(r);
  83.                 Thread t1=new Thread(i);
  84.                 Thread t2=new Thread(o);
  85.                 t1.start();
  86.                 t2.start();
  87.         }
  88. }
复制代码



作者: hamesksk    时间: 2015-3-16 14:19
这不是毕老师的代码吗




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2