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()里面的条件,按理来说,应该也是继续往下执行的 。 |
|