为了账号安全,请及时绑定邮箱和手机立即绑定

java 定时器 判断定时器内的内容是否执行完毕

java 定时器 判断定时器内的内容是否执行完毕

繁花如伊 2018-12-06 14:32:41
java  定时器 判断定时器内的内容是否执行完毕 ,执行完毕的还是按原来是时间定时更新,假如没有更新完毕,定时器的时间加大,当执行完毕重新开始按定时器之前的时间更新
查看完整描述

3 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

我这么处理过,加个状态,正在运行就略过本次定时任务。

public class TestTimer extends TimerTask{
private boolean isRun = false;
private int icount = 0;//定时划分细一些(如10次才是真正的一个任务),略过后等待是接近完整的周期。不加这样的判断定时器触发时间是固定的;加上就是基本按上一次完成时来定间隔周期。


public void run() {
if(isRun) return;//正在运行,略过本次
if(++icount<10) return;//时间粒度是10
try {
icount = 0;
isRun = true;
runTask();
} catch (Exception e) {
e.printStackTrace();
}finally{
isRun = false;
}
}

private void runTask(){
//Task
}
}

查看完整回答
反对 回复 2018-12-16
  • 3 回答
  • 0 关注
  • 2166 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信