在指定时间重复循环
Repeat the loop at a specified time
我需要一个在特定时间重复的循环
例如 10 秒 :
while (Repeat every ten seconds)
{
// Code body
}
要将代码执行暂停到 java 循环中,您可以使用 Thread.sleep(Integer)
方法,这将在指定的毫秒数内停止线程的执行。 Here 有一个带有 for
循环的官方示例。在您的情况下,您可以这样做:
while (true) {
/* your code here */
Thread.sleep(10000);
}
while
循环的主体将每 10 秒执行一次。
严格来说,你不能那样做。你可以做一个循环来做类似
的事情
while(true){
... do your sheet ...
Thread.sleep(10_000);
}
但不会精确到每 10 秒一次。
不过,这个解决方案可能适合您。
您需要考虑的是:
如果 do your sheet
运行 9 秒会怎样?你应该再等 10 秒还是只等剩下的 1 秒?
如果操作超过 10 秒会怎样?你应该立即重复还是在动作开始后 10 秒重复?程序是否应该在不同的线程中再次开始操作?程序应该启动多少个线程?
此外,不能保证 Thread.sleep(10_000)
会暂停当前线程的执行恰好 10 秒。由于interrupt/signal,它可能会更快地从睡眠中恢复过来。此外,线程可能稍后会从睡眠中恢复,因为在 10 秒过去后没有可用资源来执行线程。
对于简单的练习,while
循环和 sleep()
都可以。如果您以后需要更专业的东西,那么您可以阅读文档,并考虑使用 Quartz。
我需要一个在特定时间重复的循环
例如 10 秒 :
while (Repeat every ten seconds)
{
// Code body
}
要将代码执行暂停到 java 循环中,您可以使用 Thread.sleep(Integer)
方法,这将在指定的毫秒数内停止线程的执行。 Here 有一个带有 for
循环的官方示例。在您的情况下,您可以这样做:
while (true) {
/* your code here */
Thread.sleep(10000);
}
while
循环的主体将每 10 秒执行一次。
严格来说,你不能那样做。你可以做一个循环来做类似
的事情while(true){
... do your sheet ...
Thread.sleep(10_000);
}
但不会精确到每 10 秒一次。
不过,这个解决方案可能适合您。
您需要考虑的是:
如果
do your sheet
运行 9 秒会怎样?你应该再等 10 秒还是只等剩下的 1 秒?如果操作超过 10 秒会怎样?你应该立即重复还是在动作开始后 10 秒重复?程序是否应该在不同的线程中再次开始操作?程序应该启动多少个线程?
此外,不能保证 Thread.sleep(10_000)
会暂停当前线程的执行恰好 10 秒。由于interrupt/signal,它可能会更快地从睡眠中恢复过来。此外,线程可能稍后会从睡眠中恢复,因为在 10 秒过去后没有可用资源来执行线程。
对于简单的练习,while
循环和 sleep()
都可以。如果您以后需要更专业的东西,那么您可以阅读文档,并考虑使用 Quartz。