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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class StopThread implements Runnable{
       private boolean flag = true;
       public synchronid void run(){
             while(flag ){
                   try{
                        wait();
                  } catch(InterruptedException e){
                        System. out.println(Thread.currentThread().getName() + "..." + e);
                       
                  }
                  System. out.println(Thread.currentThread().getName() + "......");
            }
      }
       public void setFlag(){
             flag = false ;
      }
}
线程0一进来wait()了,冻结了,放弃了资格
但是我不懂得是为什么线程1还能进来???这是毕老师视频里讲的   不懂?不是说同步的时候只能进一个吗 !  为什么???

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

2 个回复

倒序浏览
你也知道wait()是等待并放弃了资格,放弃了执行资格就是把同步的锁放弃了,所以另外一个线程进来了,notify()是唤醒线程,并获取同步的锁
回复 使用道具 举报
守门员 发表于 2015-7-1 09:31
你也知道wait()是等待并放弃了资格,放弃了执行资格就是把同步的锁放弃了,所以另外一个线程进来了,notif ...

懂了!我以前一直以为wait和sleep功能是一样的!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马