Java | Timerクラス Timer (Java 2 Platform SE 5.0) 各 Timer オブジェクトと対応するのは、タイマーのタスクをすべて連続して実行するために使用される、単一のバックグラウンドスレッドです。タイマータスクは迅速に実行される必要があります。タイマータスクの完了に時間がかかりすぎると、タイマーのタスク実行スレッドが「占有」されます。これにより後続のタスクの実行が遅れ、違反したタスクの完了時 (完了した場合) に、立て続けに「まとめて」実行されることになります。JavaのTimerクラスの挙動について完全に勘違いしていて、1つのTimerインスタンスに対して登録された複数のTimerTaskでも独立して実行されると思い込んでいた。 実際は、ひとつのTimerTaskが遅延したら、他のTimerTaskの実行が遅れてしまう。 ここに詳しく書かれてる。(