10.ScheduledExecutorService
はい。PlantUML なら、タイミング図で表すと分かりやすいです。
scheduleAtFixedRate
開始時刻の間隔が一定です。
イメージ:
Text Only開始: 1秒後
周期: 3秒
1回目開始: 1秒
2回目開始: 4秒
3回目開始: 7秒
⸻
scheduleWithFixedDelay
前回の終了から次回の開始までの待ち時間が一定です。
イメージ:
Text Only開始: 1秒後
delay: 3秒
処理時間: 2秒
1回目開始: 1秒
1回目終了: 3秒
2回目開始: 6秒
2回目終了: 8秒
3回目開始: 11秒
⸻
Text OnlyscheduleAtFixedRate
開始 → 3秒後に開始 → 3秒後に開始
scheduleWithFixedDelay
開始 → 終了 → 3秒待つ → 開始
Java Gold 的には、
Text OnlyFixedRate = 開始時刻ベース
FixedDelay = 終了時刻ベース
で覚えるとよいです。