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

在一定延迟后重新执行Java程序,java,eclipse,multithreading,timer,Java,Eclipse,Multithreading,Timer,我想在Eclipse中以一定的延迟多次执行Java程序。 我试图使用ScheduleAtFixedRate()在一定时间间隔后重新执行程序。那么ScheduleAtFixedRate()和ScheduledExecutorService之间的主要区别是什么呢 使用后者有什么好处? 当计算机设置为睡眠模式时,它是否继续运行执行计划?如果您的意思是.scheduleAtFixedRate()(注意小s),则它是。因此,使用两者都没有{dis,}好处 您可以通过调用来创建ScheduledExecut

我想在Eclipse中以一定的延迟多次执行Java程序。 我试图使用
ScheduleAtFixedRate()
在一定时间间隔后重新执行程序。那么
ScheduleAtFixedRate()
ScheduledExecutorService
之间的主要区别是什么呢

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

如果您的意思是
.scheduleAtFixedRate()
(注意小
s
),则它是。因此,使用两者都没有{dis,}好处

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

final ScheduledExecutorService service
    = Executors.newScheduledThreadPool(...);
service.scheduleAtFixedRate(...);
关于:

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


不是。是操作系统让电脑进入睡眠状态,是操作系统让你在想要的时间醒来。正在运行的Java程序是一个JVM,是一个最终由操作系统控制的进程。

ScheduledExecutorService是一个定义任务执行者行为的接口,ScheduleAtFixedRate()是该接口的方法,它期望实现类,即执行者以固定的间隔执行输入任务


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

不知道
ScheduleAtFixedRate()
,但是
。ScheduleAtFixedRate()
是由
ScheduledExecutorService
提供的一种方法。您是否使用Eclipse IDE来实现一个这样做的java程序,或者您实际上是在EclipseIDE运行时执行程序吗?为什么要标记它?感谢您的回复!!是的,我正在使用EclipseIDE来实现java程序,感谢您快速的回答。。。但是,我如何指示操作系统在我想要运行程序的时候醒来呢?有什么办法吗?这完全取决于操作系统,所以没有一个答案。这也取决于电脑睡眠的深度。我认为根本没有任何硬件/软件标准来定义这一点;ACPI只定义睡眠状态,而不是关于如何进入/退出睡眠的协议。因此,唯一的方法是确保计算机在运行程序时不会休眠或进入睡眠状态。。。没有自动或程序化的方法来确保这一点!!也许有。。。但它依赖于操作系统。你应该对此进行研究;)