特定の遅延を伴って、Eclipse で Java プログラムを複数回実行したいと考えています。ScheduleAtFixedRate()
一定時間経過後にプログラムを再実行するために使用しようとしていました。ScheduleAtFixedRate()
では、との主な違いは何ScheduledExecutorService
ですか?
後者を使用する利点は何ですか?コンピューターがスリープ モードに設定されている場合、実行スケジュールを実行し続けますか?
特定の遅延を伴って、Eclipse で Java プログラムを複数回実行したいと考えています。ScheduleAtFixedRate()
一定時間経過後にプログラムを再実行するために使用しようとしていました。ScheduleAtFixedRate()
では、との主な違いは何ScheduledExecutorService
ですか?
後者を使用する利点は何ですか?コンピューターがスリープ モードに設定されている場合、実行スケジュールを実行し続けますか?
.scheduleAtFixedRate()
つまり(小さな に注意してくださいs
)、それはによって提供されるメソッドScheduledExecutorService
です。そのため、どちらを使用しても{dis,}利点はありません。
ScheduledExecutorService
たとえば、次のように呼び出して を作成できます。
final ScheduledExecutorService service
= Executors.newScheduledThreadPool(...);
service.scheduleAtFixedRate(...);
に関して:
コンピューターがスリープ モードに設定されている場合、実行スケジュールを実行し続けますか?
いいえ。コンピューターをスリープ状態にするのは OS であり、必要な時間にウェイクアップするように指示する必要があるのは OS です。実行中の Java プログラムは JVM であり、プロセスは最終的に OS によって制御されます。
ScheduledExecutorService は、タスクのエグゼキュータの動作を定義するインターフェイスであり、ScheduleAtFixedRate() は、実装クラス、つまりエグゼキュータが入力タスクを一定間隔で実行することを期待するこのインターフェイスのメソッドです。
コンピュータがスリープ状態または休止状態になると、何も実行されません。