Java 计划常规任务而不延长时间任务?

Java 计划常规任务而不延长时间任务?,java,multithreading,jakarta-ee,timer,runnable,Java,Multithreading,Jakarta Ee,Timer,Runnable,如何在单独的线程和给定的时间间隔内重复运行此类的实例? (正如您所注意到的,我正在使用Java2EE) 但在这种情况下,我不能扩展任何其他类。我该怎么办?如果使用了,那么只需执行Runnable对象,而不是TimerTask对象 ScheduledExecutorService executorService = new ScheduledThreadPoolExecutor(corePoolSize); Gate gate = Gate.fetchOne(); executorSer

如何在单独的线程和给定的时间间隔内重复运行此类的实例? (正如您所注意到的,我正在使用Java2EE)

但在这种情况下,我不能扩展任何其他类。我该怎么办?

如果使用了,那么只需执行
Runnable
对象,而不是
TimerTask
对象

ScheduledExecutorService executorService = 
    new ScheduledThreadPoolExecutor(corePoolSize);
Gate gate = Gate.fetchOne();
executorService.scheduleAtFixedRate(gate, 0, 1, TimeUnit.SECONDS);
这就省去了扩展的需要。

如果您使用了,那么您只需执行
Runnable
对象,而不是
TimerTask
对象

ScheduledExecutorService executorService = 
    new ScheduledThreadPoolExecutor(corePoolSize);
Gate gate = Gate.fetchOne();
executorService.scheduleAtFixedRate(gate, 0, 1, TimeUnit.SECONDS);
这样就省去了扩展的需要。

试试看

    Timer timer = new Timer();
    final Gate gates = Gate.fetchOne();
    timer.schedule(new TimerTask() {
        public void run() {
            gates.run();
        }
    }, 0, 1000);
试一试


你能解释一下它的用途吗?还有我能阻止它的方法吗?我想添加一个开始-停止链接,这样我就可以控制service@dave查看从
scheduleAtFixedRate
方法返回的
ScheduledFuture
对象。executorService.shutdown()@dave这是另一种选择,尽管这将取消executor服务中的所有任务。另外,请注意,通常
shutdown()
cancel()
选项不会中断正在运行的任务,除非该任务可以响应线程中断。您能解释一下它的用法吗?还有什么方法可以停止它吗?我想添加一个开始-停止链接,这样我就可以控制service@dave查看从
scheduleAtFixedRate
方法返回的
ScheduledFuture
对象。executorService.shutdown()@dave这是另一种选择,尽管这将取消executor服务中的所有任务。另外,请注意,通常
shutdown()
cancel()
选项不会中断正在运行的任务,除非该任务可以响应线程中断。thnx对于答复,您认为duncan jones的解决方案如何?它比TimerTask好100%,但您询问了TimerTask:)thnx对于答复,你觉得邓肯·琼斯的解决方案怎么样?它比你的好100%,但你问了关于TimerTask:)
    Timer timer = new Timer();
    final Gate gates = Gate.fetchOne();
    timer.schedule(new TimerTask() {
        public void run() {
            gates.run();
        }
    }, 0, 1000);