Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1608902
  • 博文数量: 695
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 4027
  • 用 户 组: 普通用户
  • 注册时间: 2013-11-20 21:22
文章分类

全部博文(695)

文章存档

2018年(18)

2017年(74)

2016年(170)

2015年(102)

2014年(276)

2013年(55)

分类: Java

2017-01-11 15:08:51

synchronize(lock){
   while(!conditionPredicate())
          wait();
   }
}
首先要明确调用wait的时候一定要是在获得锁的前提下,调用wait后释放锁,等待通知;当收到通知后wait返回前要再次去获得锁,所以等wait返回后要去再次检查条件谓词,因为在wait返回前获得的锁的过程中可能条件谓词已经不为真了或者别的线程误调用了notifyAll() 条件谓词一直都不是真;基于以上原因当wait()返回后还要再次去检查谓词条件。
阅读(809) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~