0

毎秒タスクを実行する必要がありますX。or
を使用できることはわかっていますが、問題は、このタスクが状態に依存することです。 つまり、 run でタスクが何をするかは、 run の結果に依存します。 これをコード化するための最良のアプローチは何でしょうか? おそらくTimerTaskScheduledThreadPool
BA

while(true){  
  //do stuff  
  Thread.sleep(5000);  
}  

ここでできる最善のことはありますか?

4

2 に答える 2

2

TimerTask実装で状態を定義してから、次を使用しますTimer

TimerTask task = new TimerTask ()
{
    private int state = 0;

    @Override
    public void run ()
    {
        System.out.println ("State is: " + state);
        state += 1;
    }
};

new Timer ().schedule (task, 0L, 1000L);

これにより、タスクは1秒ごと(1000Lミリ秒ごと)に永久に実行されます。

于 2013-02-26T12:27:58.937 に答える
1

Timeraで aを使用できると思いますTimerTask

Timer timer = new Timer();
TimerTask task = new TimerTask() {
    @Override
    public void run() {
        // Some task
    }
};
timer.schedule(task, 10000, 10000);

の最初の最初の時間遅延の後、taskすべての開始を実行します。10s10s

のドキュメントによるとTimer.schedule、このメソッド

指定されたタスクを、指定された遅延の後に開始して、固定遅延で繰り返し実行するようにスケジュールします。以降の実行は、指定された期間で区切られたほぼ一定の間隔で行われます。

于 2013-02-26T12:34:11.220 に答える