0

我在 java 中有一个应用程序,我需要在给定延迟后安排命令运行,我应该使用 Timer 或 ThreadPool 什么,为什么?

4

2 回答 2

2

我建议您使用ScheduledExecutorService. 理由:它比or容易使用。TimerTimerTask

例如,您可以使用Executors.newScheduledThreadPool().

于 2013-06-21T18:15:55.167 回答
2

如果您使用的是 Spring,另一种解决方案是@Scheduled. 只需使用该注释注释所需的方法并指定延迟或您想要调用的特定时间。优点是您不需要实现 Runnable 的新类并关注多线程(尽管 Executors 框架易于使用)。但是您需要具有带有注释的方法的类是 Spring Bean;该方法还需要返回 void 并且没有参数。

其实很简单:

@Scheduled(fixedRate = 5000)//the method is called once every 5 seconds
public void myScheduledMethod() {
    //do you stuff
}
于 2013-06-21T19:04:50.080 回答