使用java.util.TimerTask调度任务时,如何确保运行方法仅在当前执行完成后才能执行,否则任务队列大小将保持增长,并且最终任务将始终执行。我是初学者,正在寻求帮助
答案 0 :(得分:1)
使用ExecutorService#scheduleWithFixedDelay()
。当前任务完成时,这将开始“延迟”(与scheduleAtFixedRate()
相对)
答案 1 :(得分:1)
将java.util.Timer与TimerTask一起使用。可以使用以下两种计时器之一:
<input type="text">
schedule(TimerTask task, long delay, long period)
位置:
scheduleAtFixedRate(TimerTask task, long delay, long period)
-要安排的任务。
task
-执行任务之前的毫秒数。
delay
-两次连续执行任务之间的时间(以毫秒为单位)。
另外,请参阅此文章:What is the difference between schedule and scheduleAtFixedRate?