黑马程序员技术交流社区

标题: 线程冻结后的一个判断问题 [打印本页]

作者: 祁焱    时间: 2011-10-29 09:56
标题: 线程冻结后的一个判断问题
public void run() {
                 if(ticket>0)
                 while (flag) {
                           try {
                            Thread.sleep(10);
                        } catch (InterruptedException ex) {
                            Logger.getLogger(Ticket.class.getName()).log(Level.SEVERE, null, ex);
                        }
                        System.out.println(Thread.currentThread().getName() + "1号窗口" + ticket--);
                       flag=false;
               }
在以上代码中为什么当线程冻结10毫秒后,再次执行时还会去判断while循环呢?在毕老师的视频中讲过没有整明白。
作者: 赵玉成    时间: 2011-10-30 01:33
while循环是怎么执行的?,while(条件)
                                    { 循环体}
先判断条件是否满足为true,  满足, 执行循环;再判断,满足,执行循环,再判断满足,执行循环体,就是这样执行的啊………………
sleep方法并不释放当前线程自己的锁,所以sleep后是这样的,




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