gpt4 book ai didi

java - 如何提前取消timer.schedule()调用

转载 作者:行者123 更新时间:2023-12-02 06:42:58 25 4
gpt4 key购买 nike

我已经安排了一个方法在未来的某个日期运行;但是,某些事件可能会也可能不会在该日期之前发生,这意味着我想在指定日期之前运行该方法;我怎样才能做到这一点?我目前有:

Timer timer = new Timer();
TimerTask task = new TaskToRunOnExpriation();
timer.schedule(task, myCalendarObject.getTime());

我将在我的应用程序中运行许多这样的 TimerTask,如果发生某种事件,是否停止它们的特定实例?

编辑我只想取消给定事件的单个 Timer ,是否有一种方法可以管理 Timer 的身份,以便我可以轻松找到并停止它?

最佳答案

如果您有数千个,您应该使用 ScheduledExecutorService它将池化线程,而不是每个计时器使用一个线程的计时器。

调度任务时执行器服务返回的ScheduledFutures也有cancel方法来取消底层任务:future.cancel(true); .

至于取消正确的任务,您可以将 future 存储在 Map<String, Future> 中。因此您可以通过名称或 ID 等方式访问它们。

关于java - 如何提前取消timer.schedule()调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18941437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com