Java 计划常规任务而不延长时间任务?
如何在单独的线程和给定的时间间隔内重复运行此类的实例? (正如您所注意到的,我正在使用Java2EE) 但在这种情况下,我不能扩展任何其他类。我该怎么办?如果使用了,那么只需执行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
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);