A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 祁焱 黑马帝   /  2011-10-29 09:56  /  2218 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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循环呢?在毕老师的视频中讲过没有整明白。

1 个回复

倒序浏览
while循环是怎么执行的?,while(条件)
                                    { 循环体}
先判断条件是否满足为true,  满足, 执行循环;再判断,满足,执行循环,再判断满足,执行循环体,就是这样执行的啊………………
sleep方法并不释放当前线程自己的锁,所以sleep后是这样的,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马