0

このクラスのインスタンスを別のスレッドで指定された間隔で繰り返し実行するにはどうすればよいですか? (お気づきのように、私は Java 2 EE を使用しています)。

public class Gate extends AbsDBObject<Gate> implements Runnable{
  public void Run(){
    //Something
  }
}

Gateクラスを拡張してTimerTask使用するクラスによって以前にこれを行いましたTimer

Timer timer = new Timer();
Gate gates = Gate.fetchOne();
timer.schedule(gate, 0, 1000);

しかし、この場合、他のクラスを拡張することはできません。私は何をすべきか?

4

2 に答える 2

2

a を使用すると、オブジェクトではなくオブジェクトをScheduledExecutorService実行するだけになります。RunnableTimerTask

ScheduledExecutorService executorService = 
    new ScheduledThreadPoolExecutor(corePoolSize);
Gate gate = Gate.fetchOne();
executorService.scheduleAtFixedRate(gate, 0, 1, TimeUnit.SECONDS);

これにより、拡張する必要がなくなります。

于 2013-04-17T06:49:09.457 に答える
1

試す

    Timer timer = new Timer();
    final Gate gates = Gate.fetchOne();
    timer.schedule(new TimerTask() {
        public void run() {
            gates.run();
        }
    }, 0, 1000);
于 2013-04-17T07:02:25.070 に答える