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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

刚刚看了视频,在下面的代码里,如果是用if判断的话,线程被唤醒时为什么会直接往下进行,而用while的时候,线程会回去再次判断条件的真假啊?帮忙解释一下,我自己没弄明白!
public synchronized void set(String name)
        {
                while(flag)
                        try{wait();}catch(Exception e){}线程在这里停止,被唤醒时,如果用if就是继续向下执行,而while就是返回上面从新判断?
                this.name = name+"--"+count++;

                System.out.println(Thread.currentThread().getName()+"...生产者..."+this.name);
                flag = true;
                this.notifyAll();
        }

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马