刚刚看了视频,在下面的代码里,如果是用if判断的话,线程被唤醒时为什么会直接往下进行,而用while的时候,线程会回去再次判断条件的真假啊?帮忙解释一下,我自己没弄明白!
public synchronized void set(String name)
{
while(flag)
try{wait();}catch(Exception e){}线程在这里停止,被唤醒时,如果用if就是继续向下执行,而while就是返回上面从新判断?
this.name = name+"--"+count++;
System.out.println(Thread.currentThread().getName()+"...生产者..."+this.name);
flag = true;
this.notifyAll();
} |
|