Timer
Timer
是 jdk 1.3
之后自带的 java.util.Timer
类。
这个类允许你按一定的规则调度一个
java.util.TimerTask
任务。主要是按照一定速率去执行任务,不支持cron
表达式。示例
public class TimerTest { public static void main(String[] args) { TimerTask timerTask = new TimerTask() { private Integer count = 0; @Override public void run() { count++; System.out.println("task count:"+count); } }; Timer timer=new Timer(); timer.schedule(timerTask,1000,1000); } }
Timer
类本身比较简单,用法有限,所以使用比较少,具体内容可以直接看源码。
ScheduledExecutorService
ScheduledExecutorService
是 jdk 1.5
之后自带的一个类。
是基于线程池设计的定时任务类,每个调度任务都会分配到线程池中的一个线程去执行(任务是并发执行,互不影响)。
schedule
方法返回Future
对象示例
public class ScheduledExecutorServiceTest { public static void main(String[] args) { ScheduledExecutorService service = Executors.newScheduledThreadPool(5); service.scheduleAtFixedRate(new Runnable() { private Integer count = 0; @Override public void