java - Java中如何停止计划的任务

标签 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);”来做到这一点?

最佳答案

TimerTask.cancel() 不带任何参数。只需调用电话

myTask.cancel();

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

Java 5.0 introduced the java.util.concurrent package and one of the concurrency utilities therein is the ScheduledThreadPoolExecutor which is a thread pool for repeatedly executing tasks at a given rate or delay. It is effectively a more versatile replacement for the Timer/TimerTask combination, as it allows multiple service threads, accepts various time units, and doesn't require subclassing TimerTask (just implement Runnable). Configuring ScheduledThreadPoolExecutor with one thread makes it equivalent to Timer.

尽管实现的代码可能稍微多一些,但它可以更好地控制提交的任务。

关于java - Java中如何停止计划的任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24043108/

相关文章:

java - 如何在向 IDP 发送身份验证请求时将当前 URL 作为中继状态发送

java - MPAndroidChart - 如何在饼图中添加和显示图例

java - 如何从 Java Bean 获取数据源 (document1) 的句柄

java - 在 Eclipse 中运行 Nutch - 缺少构建文件夹

java - 在不传递种子的情况下获取随机对象的种子?

java - Java 中的双重检查锁定和代码重新排序

java - 在 java 中使用自定义信任库以及默认信任库

java - 无法添加到列表

java - 如何将对外部类的引用传递给内部类中的方法? (或者如何将 "this"传递给内部类?)

java - 如何将 map 值放入不同类型的列表中?