译:http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledExecutorService.html

父类:Executor, ExecutorService

子类:ScheduledThreadPoolExecutor

方法:

1、schedule(Runnable command, long delay, TimeUnit unit)

作用:在delay延时后执行一次性command任务

参数:callable(要执行的任务),delay(延时的时长),unit(时长单位)

返回:ScheduledFuture待完成的任务,等任务完成后调用它的get()方法返回null值并抛异常

eg:

import java.util.concurrent.ExecutionException;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;public class ScheduledExecutorTest implements Runnable {private String jobName = "";public ScheduledExecutorTest(String jobname) {super();this.jobName = jobname;}@Overridepublic void run() {System.out.println("execute " + jobName);}public static void main(String[] args) {ScheduledExecutorService service = Executors.newScheduledThreadPool(1);ScheduledFuture<?> able=service.schedule(new ScheduledExecutorTest("test1"), 1, TimeUnit.SECONDS);try {System.out.println(able.get());} catch (InterruptedException e) {e.printStackTrace();} catch (ExecutionException e) {e.printStackTrace();}}
}

结果:

execute test1
null

2、schedule(Callable<V> callable, long delay, TimeUnit unit)

作用:在delay延时后执行一次性callable任务

参数:callable(要执行的任务),delay(延时的时长),unit(时长单位)

3、scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit)

作用:任务第一次在初始化延时时间initialDelay后执行,然后在时间段initialDelay + period后执行,接着在时间段initialDelay + 2 * period后执行,依此类推。如果任务的任一执行遇到异常,后续执行就会取消。否则,任务将只能通过取消或执行程序终止而终止。如果这个任务的任一执行的时间比period长,则后续执行都会晚于实际的执行时间,但不会同时执行。

参数:callable(要执行的任务),delay(延时的时长),unit(时长单位)

import java.util.concurrent.ExecutionException;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;public class ScheduledExecutorTest implements Runnable {private String jobName = "";public ScheduledExecutorTest(String jobname) {super();this.jobName = jobname;}@Overridepublic void run() {System.out.println("execute " + jobName);}public static void main(String[] args) {ScheduledExecutorService service = Executors.newScheduledThreadPool(1);service.scheduleAtFixedRate(new ScheduledExecutorTest("test1"), 1, 2, TimeUnit.SECONDS);service.scheduleWithFixedDelay(new ScheduledExecutorTest("test2"), 1, 1, TimeUnit.SECONDS);/*ScheduledFuture<?> able=service.schedule(new ScheduledExecutorTest("test1"), 1, TimeUnit.SECONDS);try {System.out.println(able.get());} catch (InterruptedException e) {e.printStackTrace();} catch (ExecutionException e) {e.printStackTrace();}*/}
}

4、scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit)

作用:任务第一次在初始化延时时间initialDelay后执行,第一个任务执行后经过delay时间后执行,依此类推。如果任务的任一执行遇到异常,后续执行就会取消。否则,任务将只能通过取消或执行程序终止而终止。

参数:callable(要执行的任务),delay(延时的时长),unit(时长单位)

5、继承的父类ExecutorService方法有:awaitTermination, invokeAll, invokeAll, invokeAny, invokeAny, isShutdown, isTerminated, shutdown, shutdownNow, submit, submit, submit

6、继承父类Executor方法execute

任务调度ScheduledExecutorService相关推荐

  1. java定时14点30分_单机定时任务的四种基本实现方式

    引言 在实际项目开发中,定时任务调度是经常会出现的一类需求. 定时任务的场景可以说非常广泛,例如: 购买某些视频网站的会员后,每天给会员送成长值,每月给会员送电影券 在保证最终一致性的场景中,利用定时 ...

  2. 任务调度(三)——Timer的替代品ScheduledExecutorService简介

    转载自  任务调度(三)--Timer的替代品ScheduledExecutorService简介 先前的两篇博文<任务调度(一)--jdk自带的Timer>和<任务调度(二)--j ...

  3. 任务调度(三)——Timer的替代品ScheduledExecutorService简单介绍

    先前的两篇博文<任务调度(一)--jdk自带的Timer>和<任务调度(二)--jdk自带的Timer 动态改动任务运行计划>中,简介了一下Timer,能够实现几本的功能.可是 ...

  4. 任务调度的方式:Timer、ScheduledExecutorService、spring task、quartz、XXL-JOB、Elastic-Job

    任务调度 定时任务调度:基于给定的时间点.给定的时间间隔.给定的执行次数自动执行的任务. Timer 介绍 Timer,简单无门槛,一般也没人用. Timer位于java.util包下,其内部包含且仅 ...

  5. 几种任务调度的 Java 实现方法与比较

    综观目前的 Web 应用,多数应用都具备任务调度的功能.本文由浅入深介绍了几种任务调度的 Java 实现方法,包括 Timer,Scheduler, Quartz 以及 JCron Tab,并对其优缺 ...

  6. scheduled线程池ScheduledExecutorService只执行一次_有个定时任务突然不执行了

    scheduled线程池ScheduledExecutorService只执行一次_有个定时任务突然不执行了 原因 If any execution of the task encounters an ...

  7. Spring任务调度

    任务调度是大多数应用系统的常见需求之一,拿论坛来说:每个半个小时生成精华文章的RSS文件,每天凌晨统计论坛用户的积分排名,每隔30分钟执行对锁定过期的用户进行解锁.以上都是以时间为关注点的调度,事实上 ...

  8. xxl子任务_阿里面试官:聊一下分布式任务调度有那些解决方案?

    作者:黄兆平 来源:http://blog.freshfood.cn/article/39 # 简介 随着系统规模的发展,定时任务数量日益增多,任务也变得越来越复杂,尤其是在分布式环境下,存在多个业务 ...

  9. java 分布式任务_一个简单的基于 Redis 的分布式任务调度器 —— Java 语言实现...

    折腾了一周的 Java Quartz 集群任务调度,很遗憾没能搞定,网上的相关文章也少得可怜,在多节点(多进程)环境下 Quartz 似乎无法动态增减任务,恼火.无奈之下自己撸了一个简单的任务调度器, ...

  10. 分布式定时任务调度系统技术选型--转

    http://www.expectfly.com/2017/08/15/%E5%88%86%E5%B8%83%E5%BC%8F%E5%AE%9A%E6%97%B6%E4%BB%BB%E5%8A%A1% ...

最新文章

  1. 重识设计模式-建造者模式(Builder Pattern)
  2. 子类如果不实例化则不会调用它自身的静态构造函数
  3. MySQL dayname()函数
  4. 高性能I/O设计模式
  5. 50行以上c语言程序代码,C语言非常简单的字符统计程序50行
  6. python画图显示不了中文_完美解决Python matplotlib绘图时汉字显示不正常的问题
  7. TikZ学习笔记(一) 基本图形
  8. ps读写ddr3里面的数据 zynq_Zynq:用PS控制DDR3内存读写
  9. 联通引入乐phone:联想欲克隆PC成功模式
  10. vi删除选中内容_如何优雅的删除代码-VIM
  11. MySQL技术内幕 InnoDB存储引擎【一】
  12. matlab怎么画两个自变量的图_er图怎么画?轻松绘制专业er图的软件
  13. 生动形象!一个故事讲完CPU的工作原理
  14. 视图:定义视图 (建立视图、删除视图格式、查询视图、更新视图、视图的作用)
  15. css3 gird布局
  16. Docker:架构分解
  17. 链接服务器“(null)“的 OLE DB 访问接口 “SQLNCLI10“ 返回了消息 “客户端无法建立
  18. 给定一个10位的整数组成的串,形式如: d1d2d3d4d5d6d7d8d9d10 。 其中最后的一位(即 )是校验和,其使用以下运算规则以前面的9位上的整数作为参数获得结果
  19. Python-从PDF中提取图片、压缩PDF
  20. ant-design-vue select 可搜索下拉加载更多

热门文章

  1. vrp java_HCIA-VRP基础及操作
  2. i12蓝牙耳机怎么设置成中文_耳朵里的小精灵——乐迈车载智能蓝牙耳机
  3. 谁将是互联网宝宝军团的最大劲敌?
  4. 【JS提升】六边形的两种画法
  5. C# 网易云音乐API 多达100+ 支持登录,无损下载
  6. 用python做餐厅点餐系统
  7. 思维方式-《学会提问》书中的精髓:批判性思维是人类对抗人工智能的最后阵地。
  8. java rdt_使用 Eclipse 和 RDT 开发Ruby应用程序
  9. 世硕电子发放员工证件随手扔地上,其实是一种服从性测试
  10. 阿里云和腾讯云对比哪家好?云服务器哪个速度快?各有什么优势?