哪个在java中使用Timer或ThreadPool?

时间:2013-06-21 18:12:41

标签: java multithreading threadpool

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

2 个答案:

答案 0 :(得分:2)

我建议您使用ScheduledExecutorService。基本原理: TimerTimerTask更容易。

您可以使用Executors.newScheduledThreadPool()来获取一个。

答案 1 :(得分: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
}