Timer timer = new Timer(true);

timer.schedule(TimerTask, delay, interval);

创建timer时使用new Timer(true)可以使timer线程成为一个daemon线程,这样当程序只有daemon线程的时候,它就会自动终止运行。

Timer的schedule函数有四种:

schedule(TimerTask task, long delay, long period)

schedule(TimerTask task, Date time, long period)

scheduleAtFixedRate(TimerTask task, long delay, long period)

scheduleAtFixedRate(TimerTask task, Date firstTime, long period)

(1) 2个参数的schedule在制定任务计划时, 如果指定的计划执行时间scheduledExecutionTime<= systemCurrentTime,则task会被立即执行。scheduledExecutionTime不会因为某一个task的过度执行而改变。

(2) 3个参数的schedule在制定反复执行一个task的计划时,每一次执行这个task的计划执行时间随着前一次的实际执行时间而变,也就是 scheduledExecutionTime(第n+1次)=realExecutionTime(第n次)+periodTime。也就是说如果第n 次执行task时,由于某种原因这次执行时间过长,执行完后的systemCurrentTime>= scheduledExecutionTime(第n+1次),则此时不做时隔等待,立即执行第n+1次task,而接下来的第n+2次task的 scheduledExecutionTime(第n+2次)就随着变成了realExecutionTime(第n+1次)+periodTime。说 白了,这个方法更注重保持间隔时间的稳定。

(3)3个参数的scheduleAtFixedRate在制定反复执行一个task的计划时,每一次 执行这个task的计划执行时间在最初就被定下来了,也就是scheduledExecutionTime(第n次)=firstExecuteTime +n*periodTime;如果第n次执行task时,由于某种原因这次执行时间过长,执行完后的systemCurrentTime>= scheduledExecutionTime(第n+1次),则此时不做period间隔等待,立即执行第n+1次task,而接下来的第n+2次的 task的scheduledExecutionTime(第n+2次)依然还是firstExecuteTime+(n+2)*periodTime这 在第一次执行task就定下来了。说白了,这个方法更注重保持执行频率的稳定。

java schedule参数_【摘抄】关于Java schedule job Timer的schedule方法详解 | 学步园相关推荐

  1. java解析日志数据_Java实时监控日志文件并输出的方法详解

    Java实时监控日志文件并输出的方法详解 想在前台显示数据同步过程中产生的日志文件,在网上找到解决方案,做了代码测试好用.这里做个记录 java.io.RandomAccessFile可以解决同时向文 ...

  2. java中迭代器要导包吗_java 中迭代器的使用方法详解

    java 中迭代器的使用方法详解 前言: 迭代器模式将一个集合给封装起来,主要是为用户提供了一种遍历其内部元素的方式.迭代器模式有两个优点:①提供给用户一个遍历的方式,而没有暴露其内部实现细节:②把元 ...

  3. java 查询sql语句_java执行SQL语句实现查询的通用方法详解

    完成sql查询 并将查询结果放入vector容器,以便其他程序使用 /* * 执行sql查询语句 */ public static vector executequery(class clazz, s ...

  4. 什么模式下不可使用曝光补偿_摄影从零到入门 曝光模式与测光方法详解

    今天我们带来180分钟摄影从零到入门的第三节课,认识曝光(中).这一节课我们将主要教会大家以下几个问题:相机有哪些曝光模式以及各有什么作用,相机如何选择测光模式,如何调整曝光补偿,如何快速掌握曝光是否 ...

  5. 下拉多选框 微信小程序_微信小程序下拉框组件使用方法详解

    本文实例为大家分享了微信小程序下拉框组件的使用方法,供大家参考,具体内容如下 适用场景 1.省市三级联动 2.出生日期选择 3.性别选择 4.一般性的下拉选择等 一.省市三级联动使用 注意mode = ...

  6. python3占位符详解_占位符最新:Python 占位符的使用方法详解_爱安网 LoveAn.com

    关于"占位符"的最新内容 聚合阅读 这篇文章主要介绍了Python 占位符的使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以 ...

  7. java的graphics2d_Java Graphics2D 使用详解 | 学步园

    正如我们在前面提到的,我们可以对Graphics2D类进行多项设置.实际上,渲染引擎在绘制Graphics2D图形前会查看 7个主要的属性: Paint Stroke Font Transformat ...

  8. listen函数的第二个参数_【图像处理】OpenCV系列十七 --- 几何图像变换函数详解(一)...

    上一篇我们学习了仿射变换的warpAffine函数,知道了如何用这个函数对图像进行旋转.平移等操作,那么本节我们一起来学习一下与仿射变换相关的其他函数以及相关的几何图像变换. 一.convertMap ...

  9. java 双分派_双分派 和 访问者模式详解 | 学步园

    为什么 网上的人都说 java 只支持 单分派不支持双分派? 这段代码摘子某书[code=Java] public class Dispatch{ static class QQ{} static c ...

最新文章

  1. R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(添加均值、标准偏差)实战
  2. 用示波器恢复软盘里的游戏,这个程序员大神的操作太硬核了
  3. python安卓版汉化版-手机随时随地写Python,还可以开发安卓APP,太厉害了!
  4. leetcode 35. 搜索插入位置
  5. django(models)视图与html 简单的操作
  6. mysql计算1天后的时间_mysql 计算某个时间,多少天后,多少个月后时间戳
  7. C#开发笔记之19-如何用C#实现优雅的Json解析(序列化/反序列化)方案?
  8. JavaScript算法(实例二)9*9乘法表
  9. Android 系统性能优化(75)---MTK 平台perfomance问题的基本信息确认
  10. postgresql如何让主键自增
  11. linux下在线新增大文件系统划分,linux - 文件系统(fdisk)
  12. asp.net中URL参数加密解密过程
  13. vb 打开sdf数据_DWG、DGN、SDF、DWF!Civil 3D图形数据共享的几种方法
  14. SLAM会议笔记(四)Lego-LOAM
  15. Flutter之BuilderContext和Widget关系浅析
  16. 基于spring reactor3构建的即时通讯api。
  17. 守望先锋代码_使用守望台自动刷新SQL Server容器
  18. 用python实现阴阳师简单挂机脚本
  19. 实数傅立叶变换和复数傅立叶变换
  20. minio 图片存储服务器的部署和使用

热门文章

  1. 【安全攻略】Thinkphp5.0全局拦截一句话木马等非法请求
  2. getRealPath
  3. 海外社交媒体营销-Tiktok要如何变现
  4. 年轻就AI秀:美颜美齿,一键搞定
  5. 一步一个脚印,其实真的不慌
  6. 学习php的15张思维导图
  7. 企业如何才能发挥出知识管理真正的价值
  8. [UE4]VS调试模式简单介绍
  9. Mac下安装home-brew
  10. executeUpdate