【发布时间】:2013-03-18 10:28:47
【问题描述】:
我正在考虑在每次操作后让线程休眠 1 小时。一种while循环运行。
【问题讨论】:
-
找一个调度器(定时器)。
-
执行者通常更可取,另见这个问题:stackoverflow.com/questions/1094867/…
标签: java multithreading concurrency
我正在考虑在每次操作后让线程休眠 1 小时。一种while循环运行。
【问题讨论】:
标签: java multithreading concurrency
当您想以特定间隔运行任务时,您应该定期使用java.util.Timer 类到scheduleAtFixedRate 和java.util.TimerTask。
当你在完成任务后让线程休眠一小时,那么间隔实际上是一小时加上执行时间,而不是一小时。即使您的批处理任务只需要几秒钟,时间差也会随着时间的推移而累积。
这意味着随着时间的推移,您的任务运行的实际时间将变得越来越难以预测。我不知道批处理在可预测的时刻发生或每周准确执行 168 次对您的用例有多重要,但是当它很重要时,使用睡眠的解决方案会非常糟糕。
【讨论】:
【讨论】: