黑马程序员技术交流社区

标题: 买票例子中问题 [打印本页]

作者: 许飞翔    时间: 2012-3-25 18:46
标题: 买票例子中问题
  1. class Ticket extends Thread
  2. {
  3.         private int tick = 100 ;
  4.         public void run()
  5.         {
  6.                 while(true)  //  这个while 判断的是什么?有点不明白
  7.                 {
  8.                         if (tick>0)
  9.                         {
  10.                                 System.out.println(currentThread().getName()+"tick: "+tick--);
  11.                         }
  12.                 }
  13.         }
  14. }
  15. class TicketDemo
  16. {
  17.         public static void main(String[] args)
  18.         {
  19.                 Ticket t1 = new Ticket();
  20.                 Ticket t2 = new Ticket();
  21.                 Ticket t3 = new Ticket();
  22.                 Ticket t4 = new Ticket();
  23.                 t1.start();
  24.                 t2.start();
  25.                 t3.start();
  26.                 t4.start();
  27.         }
  28. }
复制代码
while 判断的是什么?有点不明白?

作者: 杨朝辉    时间: 2012-3-25 18:48
while(true)就是个死循环,在这里是让线程一直跑,不停止。
作者: 黄奇耀    时间: 2012-3-25 18:51
循环条件永远为真,里面没定义退出代码或条件的话易死循环。
作者: 黄奇耀    时间: 2012-3-25 18:54
循环条件永远为真,里面没定义退出代码或条件的话易死循环。
作者: 黄小钒    时间: 2012-3-25 19:31
这里 while (true ) 的作用是 一直让这四个线程跑, 一直不停的卖票 卖票, 票卖完了,这四个线程还在运行,所以需要 Ctrl + c 结束程序
作者: 朱俊    时间: 2012-3-25 19:38
本帖最后由 朱俊 于 2012-5-16 15:05 编辑
  1. ~~~~~~~~~~~~~
复制代码

作者: 胡元    时间: 2012-3-25 22:50
while的作用是让线程循环进行,没有它的话线程只会进行一次,票子就卖不完了,当然这是个死循环,要强制结束,归根结底,while的作用就是引起循环,这是编成思想的体现!




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