等待-超时模式

与等待/通知(wait/notify)模式类似。

有时候,我们需要某些方法在等待一段时间后,若还不能完成工作,则返回(或返回默认值)。

synchronized Object work(long millseconds){
  long future = System.currentTimeMillis()+millseconds;
  long remainTime = millseconds;
  while(remainTime>0){
  	if(<condition not satisfied>){
      wait(remainTime);//最多等待超时时间的量,有可能通知后,但是条件不满足,那么要更新时间,保证最多等待millseconds
  	}else{
      return result;
  	}
    remainTime = future - System.currentTimeMillis();//更新时间
  }
  return defaultValue
}
posted @ 2017-01-31 00:16  JintaoXIAO  阅读(165)  评论(0编辑  收藏  举报