黑马程序员技术交流社区

标题: 请教个线程中while判断的问题 [打印本页]

作者: 郑飞    时间: 2014-6-26 17:57
标题: 请教个线程中while判断的问题
本帖最后由 郑飞 于 2014-6-26 18:00 编辑

谁能解释下为什么啊 while到底怎么执行的

public synchronized void set()
{
  while(flag)
         try
        {
         this.wait();      //视频中老师说从这里被唤醒的线程会回到上一步while中判断后在执行,
                               //这一步不是已经过了while判断语句了么,被唤醒不是要往下执行么?
        }
        catch (Exception e)
       {
       }
   count++;
   System.out.println(Thread.currentThread().getName()+"生产者"+this.name+count);
   flag = true;
   notifyAll();
}
作者: 执笔梦    时间: 2014-6-26 18:48
本帖最后由 执笔梦 于 2014-6-26 18:49 编辑

while(flag)大哥,这是while();
         try
        {
         this.wait();      比如你来到这里停了,那下面的的输出语句还没执行吧,下次你开始执行的时候,你要执行           输出吧,输出完了,while执行完了,是不是还要从头判断一次呢?
             System.out.println("runing?");
         }
}
如果是if()执行完了就不会再判断了

作者: 木华    时间: 2014-6-26 19:44
while循环只有在while循环条件不满足的时候才停止,与其他的结束不结束没关系
作者: lijinhe    时间: 2014-6-27 16:49
如果满足while则执行while里面的语句,不满足就不执行里面的语句。




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