毎回の操作後、スレッドを1時間スリープさせることを考えています。一種のwhileループ実行。
質問する
191 次
2 に答える
1
特定の間隔でタスクを実行する場合は、java.util.Timerクラスを使用して、定期的にjava.util.TimerTaskをscheduleAtFixedRateする必要があります。
タスクの終了後にスレッドを1時間スリープさせると、間隔は実際には1時間に実行時間を加えたものになり、正確には1時間ではありません。バッチタスクに数秒しかかからない場合でも、時間差は時間の経過とともに蓄積されます。
つまり、タスクが実行される実際の時間は、時間の経過とともに予測が難しくなります。バッチプロセスが予測可能な瞬間に発生することや、週に正確に168回実行されることがユースケースにとってどれほど重要かはわかりませんが、重要な場合、スリープを使用したソリューションは非常に悪いものになります。
于 2013-03-18T10:31:07.343 に答える
1
于 2013-03-18T10:34:49.077 に答える