如何停止在Java中安排的任务

时间:2014-06-04 16:47:06

标签: java

我正在使用java.util.timer类,我正在编写此代码

Timer myTimer = new Timer();
MyTask myTask = new MyTask() //MyTask extends TimerTask
Date alarmDate = new Date();
myTimer.schedule(myTask, alarmDate);

并使用此方法在特定日期时间执行多项任务

但我必须停止其中一些。我怎么能通过取消方法取消“myTask.cancel(Date date);”?

1 个答案:

答案 0 :(得分:1)

TimerTask.cancel()不参数。只需致电

myTask.cancel();

请注意计时器的API文档中的以下注释:

  

Java 5.0引入了java.util.concurrent包和其中一个   其中的并发实用程序是ScheduledThreadPoolExecutor   是一个线程池,用于以给定的速率重复执行任务或   延迟。它实际上是一种更通用的替代品   Timer / TimerTask组合,因为它允许多个服务线程,   接受各种时间单位,并且不需要子类化TimerTask   (只需实现Runnable)。配置ScheduledThreadPoolExecutor   使用一个线程使其等同于Timer。

虽然实现的代码可能略多一些,但它可以更好地控制提交的任务。