假设我有一个任务,它将判断是否满足某个条件.如果满足了那个条件,我应该提前终止任务.但是,我应该继续运行该任务N分钟,同时不断判断是否满足该条件.在N分钟结束时,任务应自行终止.
我一直在研究Timer、TimerTask和ExecutorService,但它们似乎都不能提供我正在寻找的解决方案类型.例如,这些方法将允许您计划任务运行一次或重复运行,但不是在特定的时间量(也就是N分钟)内运行.
假设我有一个任务,它将判断是否满足某个条件.如果满足了那个条件,我应该提前终止任务.但是,我应该继续运行该任务N分钟,同时不断判断是否满足该条件.在N分钟结束时,任务应自行终止.
我一直在研究Timer、TimerTask和ExecutorService,但它们似乎都不能提供我正在寻找的解决方案类型.例如,这些方法将允许您计划任务运行一次或重复运行,但不是在特定的时间量(也就是N分钟)内运行.
ScheduledExecutorService
可以做到这一点.
您需要做的是:
ScheduledExecutorService#shutdownNow
ScheduledExecutorService#awaitTermination
将计划任务的终止延迟到您的阈值过期