- PR -

Timerについて

1
投稿者投稿内容
しば
会議室デビュー日: 2002/11/07
投稿数: 12
投稿日時: 2002-11-27 17:22
Timerのscheduleメソッドを使用して
周期的に処理を行うプログラムを作成しています。
↓こんな感じです。
 Timer timer = new Timer();
 timer.schedule(task, 0, 1000);

schedule実行(周期的にタスクが実行されている)中は、
 Thread.sleep();
をしていなくてはならないのでしょうか?

また、周期的に処理を行う場合、他に良い方法があるなど、
情報がございましたらご教授下さい。

宜しくお願いいたします!
しょむ
ぬし
会議室デビュー日: 2001/09/06
投稿数: 430
投稿日時: 2002-11-27 19:48
それじゃ意味がないでしょう。> sleep

ふつうに Thread 上げて、run で while 回して sleep かますのと変わらないですから。
で、そういう実装でタスクがたくさんあったりすると、その分だけ時間まで sleep してるだけのスレッドがたくさん上がってしまって非効率的なので、Timer では TimerTask を queue にほーりこんで、監視 Thread から時間が来たものだけを取り出してきて実行するようになってます。

Timer/TimerTask のソースをぽろぽろ眺めてみるとオモシロイですよ。
しば
会議室デビュー日: 2002/11/07
投稿数: 12
投稿日時: 2002-12-10 18:30
しょむさん、返信ありがとうございます。

sleepを使わなくても周期で動かせるようになりました〜!!
1

スキルアップ/キャリアアップ(JOB@IT)