在一定延迟后重新执行Java程序

时间:2013-07-05 08:14:31

标签: java eclipse multithreading timer

我希望在Eclipse中多次执行Java程序并且有一定的延迟。 我试图在一段时间后使用ScheduleAtFixedRate()重新执行程序。那么ScheduleAtFixedRate()ScheduledExecutorService之间的主要区别是什么?

使用后者有什么好处? 当计算机设置为睡眠模式时,它是否继续运行执行计划?

2 个答案:

答案 0 :(得分:2)

如果您的意思是.scheduleAtFixedRate()(请注意小s),那么它就是a method provided by ScheduledExecutorService。因此,使用其中任何一个都没有{dis,}优势。

您可以通过调用来创建ScheduledExecutorService,例如:

final ScheduledExecutorService service
    = Executors.newScheduledThreadPool(...);
service.scheduleAtFixedRate(...);

至于:

  

当计算机设置为睡眠模式时,是否继续运行执行计划?

没有。它是让计算机进入睡眠状态的操作系统,它是您应该指示在您想要的时间唤醒的操作系统。正在运行的Java程序是一个JVM,一个进程最终由操作系统控制。

答案 1 :(得分:0)

ScheduledExecutorService是一个定义任务执行程序行为的接口,ScheduleAtFixedRate()是此接口的方法,它需要实现类,即执行程序以固定间隔执行输入任务。

当您的计算机进入睡眠状态或休眠状态时,将无法执行任何操作。