黑马程序员技术交流社区
标题:
线程问题 ,等待和唤醒。
[打印本页]
作者:
段金福
时间:
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