07 Java JUC 中的 Executor 框架 周期性任务调度
来源:互联网 发布:zdm软件绘制纵断面 编辑:程序博客网 时间:2024/06/06 01:32
ScheduledExecutorService基于ExecutorService,是一个完整的线程池调度。另外在提供线程池的基础上增加了四个调度任务的API。
- schedule(Runnable command,long delay, TimeUnit unit):在指定的延迟时间一次性启动任务(Runnable),没有返回值。
- schedule(Callable<V> callable, long delay, TimeUnit unit):在指定的延迟时间一次性启动任务(Callable),携带一个结果。
- scheduleAtFixedRate(Runnable command,long initialDelay,long period,TimeUnit unit):建并执行一个在给定初始延迟后首次启用的定期操作,后续操作具有给定的周期;也就是将在 initialDelay 后开始执行,然后在initialDelay+period 后执行,接着在 initialDelay + 2 * period 后执行,依此类推。如果任务的任何一个执行遇到异常,则后续执行都会被取消。否则,只能通过执行程序的取消或终止方法来终止该任务。如果此任务的任何一个执行要花费比其周期更长的时间,则将推迟后续执行,但不会同时执行。
- scheduleWithFixedDelay(Runnable command,long initialDelay,long delay,TimeUnit unit):创建并执行一个在给定初始延迟后首次启用的定期操作,随后,在每一次执行终止和下一次执行开始之间都存在给定的延迟。如果任务的任一执行遇到异常,就会取消后续执行。否则,只能通过执行程序的取消或终止方法来终止该任务。
public class ScheduledThreadUsage {
public static void main(String[] args) {
ScheduledThreadPoolExecutor executor = (ScheduledThreadPoolExecutor) Executors.newScheduledThreadPool(1);
// executor.schedule(new Task("延迟5秒,执行一次 "), 5, TimeUnit.SECONDS);
// executor.scheduleAtFixedRate(new Task("延迟5秒,每10秒执行一次 "), 5,10, TimeUnit.SECONDS);
executor.scheduleWithFixedDelay(new Task("延迟5秒,每隔10秒执行一次 "), 5,10, TimeUnit.SECONDS);
try {
TimeUnit.MINUTES.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
executor.shutdown();
try {
executor.awaitTermination(1, TimeUnit.DAYS);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.printf("Main: Ends at: %s\n", new Date());
}
}
0 0
- 07 Java JUC 中的 Executor 框架 周期性任务调度
- 05 Java JUC 中的 Executor 框架 提交线程
- Java Concurrency 周期性任务调度
- 【java并发】juc Executor框架详解
- 【java并发】juc Executor框架详解
- JAVA并发-Executor任务执行框架
- java中的任务调度
- Executor任务执行框架
- Java任务调度框架Quartz
- Java任务调度框架Quartz
- Java任务调度框架Quartz
- Linux中的周期性计划任务
- Java中的线程(九)- Executor框架
- JAVA中的线程池-Executor框架
- 深入浅出 Java Concurrency (32): 线程池 part 5 周期性任务调度
- Java Executor并发框架(六)Executor框架线程池任务执行全过程(上)
- Java Executor并发框架(七)Executor框架线程池任务执行全过程(下)
- java中的任务调度:ScheduledExecutorService
- tcpdump 取消限制包大小
- 05 Java JUC 中的 Executor 框架 提交线程
- centos 修改网卡
- 要看的书
- 排序算法——计数排序
- 07 Java JUC 中的 Executor 框架 周期性任务调度
- [欧拉函数]Bzoj2705 Longge的问题[SDOI2012]
- 类,对象。包
- 20146月份到2015年5月份70个大中城市住宅销售价格变动情况
- 注册DLL的方法!
- 随机过程
- 08 Java JUC 中的 ThreadPoolExecutor
- java.lang.RuntimeException: Unable to start activity ComponentInfo{包名/类名}
- Service——音乐播放