如何使用java计时器和TimerTask安排具有开始时间和结束时间的任务

如何使用java计时器和TimerTask安排具有开始时间和结束时间的任务,java,timer,scheduled-tasks,scheduling,Java,Timer,Scheduled Tasks,Scheduling,嗨,我正在制定一些时间表,应该在特定的时间开始,一段时间后应该停止。。在延迟后启动,我可以使用timer和timerTask类来完成。。但是我不太清楚。如何在经过一段时间后停止计时器。如果在线程中运行任务,可以保留对任务对象的引用并设置超时。诸如此类: Future<?> future = executor.submit(new customTask())); try { future .get(timeout, TimeUnit.SECONDS); } catch (Int

嗨,我正在制定一些时间表,应该在特定的时间开始,一段时间后应该停止。。在延迟后启动,我可以使用timer和timerTask类来完成。。但是我不太清楚。如何在经过一段时间后停止计时器。

如果在线程中运行任务,可以保留对任务对象的引用并设置超时。诸如此类:

Future<?> future = executor.submit(new customTask()));
try {
    future .get(timeout, TimeUnit.SECONDS);
} catch (InterruptedException | ExecutionException | TimeoutException e) {
    // The timeout exception is thrown when the get times out. Handle your stop logic here
}
Future=executor.submit(new customTask());
试一试{
get(超时,时间单位,秒);
}捕获(InterruptedException | ExecutionException | TimeoutException e){
//get超时时引发超时异常。请在此处处理停止逻辑
}
您可能希望分别处理InterruptedException、ExecutionException和TimeoutException


当停止计时器过期时,您也可以对Future对象调用.cancel()方法,但我记得在某个地方读到,不建议使用它

在特定时间触发后,代码会做什么?它是一个不停止的连续过程吗?不,它不是一个不停止的过程。它应该根据开始时间和停止时间只计划作业一次时间。如果它是一个不停止的过程(例如在计划时间发送电子邮件),那么它将在完成该作业后自动停止。你的意思是要停止调度程序本身吗?@jay:我在做跟踪应用程序。我的调度程序必须在特定时间安排跟踪线程,并在结束时间停止。。因此,只有我想在经过一段时间后停止调度程序。