猿问

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

java  定时器 判断定时器内的内容是否执行完毕 ,执行完毕的还是按原来是时间定时更新,假如没有更新完毕,定时器的时间加大,当执行完毕重新开始按定时器之前的时间更新

繁花如伊
浏览 2167回答 3
3回答

qq_花开花谢_0

我这么处理过,加个状态,正在运行就略过本次定时任务。 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 }}
随时随地看视频慕课网APP

相关分类

Java
我要回答