ScheduledThreadPoolExecutor用于定时任务,来支持周期性任务的调度java
ScheduledThreadPoolExecutor继承了ThreadPoolExecutor,实现了ScheduledExecutorService。在线程池的基础上,实现了可调度的线程池功能ide
public class ScheduledThreadPoolExecutorTest { public static void main(String agrs[]){ ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(4); //指定时延后开始执行任务,之后每隔period的时长再次执行该任务 executor.scheduleAtFixedRate(new ThreadTest("Rate"),1,3, TimeUnit.SECONDS); //指定时延后开始执行任务,之后任务执行完成后等待delay时长,再次执行任务 executor.scheduleWithFixedDelay(new ThreadTest("Delay"),1,3,TimeUnit.SECONDS); //指定时延后调度执行任务 executor.schedule(new ThreadTest("schedule"),5,TimeUnit.SECONDS); } static class ThreadTest implements Runnable{ private String name; public ThreadTest(String name) { this.name = name; } @Override public void run() { System.out.println(name+" start"+new Date()); System.out.println(); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(name +" end"+new Date()); } } }
Delay startWed Sep 12 11:56:22 CST 2018 Rate startWed Sep 12 11:56:22 CST 2018 Rate endWed Sep 12 11:56:23 CST 2018 Delay endWed Sep 12 11:56:23 CST 2018 Rate startWed Sep 12 11:56:25 CST 2018 Rate endWed Sep 12 11:56:26 CST 2018 schedule startWed Sep 12 11:56:26 CST 2018 Delay startWed Sep 12 11:56:26 CST 2018 schedule endWed Sep 12 11:56:27 CST 2018 Delay endWed Sep 12 11:56:27 CST 2018 Rate startWed Sep 12 11:56:28 CST 2018 Rate endWed Sep 12 11:56:29 CST 2018 Delay startWed Sep 12 11:56:30 CST 2018 Rate startWed Sep 12 11:56:31 CST 2018 Delay endWed Sep 12 11:56:31 CST 2018 Rate endWed Sep 12 11:56:32 CST 2018 Rate startWed Sep 12 11:56:34 CST 2018 Delay startWed Sep 12 11:56:34 CST 2018 Rate endWed Sep 12 11:56:35 CST 2018 Delay endWed Sep 12 11:56:35 CST 2018 Rate startWed Sep 12 11:56:37 CST 2018 Rate endWed Sep 12 11:56:38 CST 2018 Delay startWed Sep 12 11:56:38 CST 2018 Delay endWed Sep 12 11:56:39 CST 2018 Rate startWed Sep 12 11:56:40 CST 2018 Rate endWed Sep 12 11:56:41 CST 2018 Delay startWed Sep 12 11:56:42 CST 2018 Rate startWed Sep 12 11:56:43 CST 2018 Delay endWed Sep 12 11:56:43 CST 2018 Rate endWed Sep 12 11:56:44 CST 2018 Rate startWed Sep 12 11:56:46 CST 2018 Delay startWed Sep 12 11:56:46 CST 2018 Rate endWed Sep 12 11:56:47 CST 2018 Delay endWed Sep 12 11:56:47 CST 2018 Rate startWed Sep 12 11:56:49 CST 2018 Rate endWed Sep 12 11:56:50 CST 2018 Delay startWed Sep 12 11:56:50 CST 2018 Delay endWed Sep 12 11:56:51 CST 2018 Rate startWed Sep 12 11:56:52 CST 2018 Rate endWed Sep 12 11:56:53 CST 2018 Delay startWed Sep 12 11:56:54 CST 2018 Rate startWed Sep 12 11:56:55 CST 2018 Delay endWed Sep 12 11:56:55 CST 2018 Rate endWed Sep 12 11:56:56 CST 2018