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