如何在不同的线程和给定的时间间隔内重复运行此类的实例? (正如您已经注意到我使用的是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);
但在这种情况下,我不能扩展任何其他类。我该怎么办?
答案 0 :(得分:2)
如果您使用ScheduledExecutorService
,则只需执行Runnable
个对象,而不是TimerTask
个对象。
ScheduledExecutorService executorService =
new ScheduledThreadPoolExecutor(corePoolSize);
Gate gate = Gate.fetchOne();
executorService.scheduleAtFixedRate(gate, 0, 1, TimeUnit.SECONDS);
这节省了扩展的需要。
答案 1 :(得分:1)
试
Timer timer = new Timer();
final Gate gates = Gate.fetchOne();
timer.schedule(new TimerTask() {
public void run() {
gates.run();
}
}, 0, 1000);