-1

以下に示す一般的なスケジュールされたタスクがあるとします。Timert=newTimer();

    TimerTask listenHandover = new TimerTask() {

    public void run() 
    {
              // Some methods that can possibly take more than 1 second to execute
    }
};
t.schedule(listenHandover, 1000 , 1000); 

コメントにあるように、タスクの実行に1秒以上かかるとどうなりますか?現在実行中の1つは、次のスケジュール時に再起動されますか?または、タスクには独自のスレッドがありますか?それが明確だったことを願っています。ありがとう

4

1 に答える 1

3

タスクに1秒以上かかる場合、問題のあるタスクが完了するまで、後続のタスクはキューに入れられます。

javadocによる

タイマータスクの完了に時間がかかりすぎると、タイマーのタスク実行スレッドが「占有」されます。これにより、後続のタスクの実行が遅れる可能性があります。これにより、問題のあるタスクが最終的に完了したときに(そしてその場合に)、「束ねられ」てすばやく連続して実行される可能性があります。

于 2012-11-07T19:25:58.310 に答える