notify();wait();notifyALL();

class Res
{
 String name;
 String sex;
 boolean flag = false;

}

class Input implements Runnable
{
 private Res r;

 Input(Res r)
 {
  this.r = r;
 }
 public void run()
 { 
  int x = 0;
  while(true)
  {
   
   synchronized (r)
   {
    if(r.flag)
     try
     {
      r.wait();
     }
     catch (Exception e)
     {
     }
    if (x == 0)
    {
     r.name="mike";
     r.sex= "man";
    }
    else
    {
     r.name="丽丽";
     r.sex= "女女女";
    }
    x = (x+1)%2;
    r.flag = true;
    r.notify();
   }
  }
 }
}

class Output implements Runnable
{
 private Res r;

 Output(Res r)
 {
  this.r = r;
 }
 public void run()
 {
  while(true)
  {
   synchronized (r)
   {
    if(!r.flag)
     try
     {
      r.wait();
     }
     catch (Exception e)
     {
     }
    System.out.println(r.name+"..."+r.sex);
    r.flag = false;
    r.notify();
   }
   
  }
 }
}

class  InputOutputDemo
{
 public static void main(String[] args)
 {
  Res r = new Res();

  Input in = new Input(r);
  Output out = new Output(r);

  Thread t1 = new Thread(in);
  Thread t2 = new Thread(out);

  t1.start();
  t2.start();
 }
}


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/vvv11222/article/details/17078817
个人分类: java基础
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

notify();wait();notifyALL();

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭