黑马程序员技术交流社区

标题: 关于while循环的 [打印本页]

作者: 流沙    时间: 2014-5-20 09:37
标题: 关于while循环的
本帖最后由 流沙 于 2014-5-20 12:04 编辑

在多线程的时候,多线程在while循环体中被wait了,”当它线程池中被唤醒了仍然在循环体中“为什么不是直接在循环体中继续往下走,而是返回去判断了一下条件?????
while:先判断条件,只要条件满足才执行循环体。是这句话的就不需要了!!!
作者: gentleman    时间: 2014-5-20 11:46
  1. public synchronized void set(String name)
  2.         {
  3.                 while(flag)
  4.                         try{this.wait();}catch(Exception e){}//t1(放弃资格)  t2(获取资格)
  5.                 this.name = name+"--"+count++;

  6.                 System.out.println(Thread.currentThread().getName()+"...生产者.."+this.name);
  7.                 flag = true;
  8.                 this.notifyAll();
  9.         }
复制代码

比如这段代码,你有没有注意到while(flag)循环没有大括号?其实这个循环体就下面那一句话,和if不加大括号是一样道理
作者: 流沙    时间: 2014-5-20 12:04
gentleman 发表于 2014-5-20 11:46
比如这段代码,你有没有注意到while(flag)循环没有大括号?其实这个循环体就下面那一句话,和if不加大括号 ...

哈哈!看到了!之前没注意!以为下面代码全是大括号里边的!后来才看到循环的只有一句话哈哈




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