1
public static void main(String[] args) {

        Timer ttt = new Timer();
        TimerTask test = new TimerTask() {

            @Override
            public void run() {

                System.out.println("IN");
                        }
                 };

        ttt.schedule(test, 1000);
}

これは毎秒「IN」を出力するはずでしたが、一度しか出力していません。任意のヒント?ありがとうございました

4

1 に答える 1

2

のワンショット バージョンを使用していますschedule。インターバル期間を受け入れるオーバーロードされたバージョンを使用するだけです。

ttt.schedule(test, 0, 1000);

余談ですが、より新しいExecutorServiceが優先されjava.util.Timerます。タイマーには実行中のスレッドが 1 つしかないため、実行時間の長いタスクが他のタスクを遅らせる可能性があります。はExecutorService、スレッド プールを使用して動作できます。ここでもっと議論した

于 2013-04-20T00:29:16.200 に答える