黑马程序员技术交流社区

标题: 线程问题 ,等待和唤醒。 [打印本页]

作者: 段金福    时间: 2014-8-6 09:53
标题: 线程问题 ,等待和唤醒。
public synchronized void set (String name)
   {   
        if(flag)
              try { this.wait() }catch(Expception e){};
             this.name=name;+"...."+count++;
             system.out.println() (Threa.currentThread()getName())+"....生产者...+this.name");
              flag=true;
              this.notify();
    }
     要求大概是 ,一个生产者,一个消费者,生产一个 消费一个,,后面改为 2个生产者 ,2个消费者, 直接添加2个线程的话,是会出问题的。老师就把 if 改为 while  ,notifyAll();

我的问题: 线程wait() 之后被.notify() 是继续执行wait()  后面的语句, 为什么改为while之后,被notify()返回去判断while()里面的条件,按理来说,应该也是继续往下执行的 。
作者: 段金福    时间: 2014-8-6 10:34
就没人知道么 :'(
作者: es2379649    时间: 2014-8-6 10:50
while的是只要是成立就会执行,执行完代码块中的代码,就再此判断条件是否成立。若成立继续执行代码块,不成立执行代码块以外的。while本身就是这个样子。




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