-1

我想在每次操作后让线程休眠 1 小时。一种while循环运行。

4

2 回答 2

1

当您想以特定的时间间隔运行任务时,您应该使用java.util.Timer类来定期安排java.util.TimerTask的scheduleAtFixedRate 。

当你在完成任务后让线程休眠一小时,那么间隔实际上是一小时加上执行时间,而不是一小时。即使您的批处理任务只需要几秒钟,时间差也会随着时间的推移而累积。

这意味着随着时间的推移,您的任务运行的实际时间将变得越来越难以预测。我不知道批处理在可预测的时刻发生或每周精确执行 168 次对您的用例有多重要,但是当它很重要时,使用睡眠的解决方案会非常糟糕。

于 2013-03-18T10:31:07.343 回答
1

简单的方法应该是使用ScheduledExecutorService.scheduleAtFixedRate

于 2013-03-18T10:34:49.077 回答