Java中Timer的schedule()方法参数详解

 更新时间:2019年03月12日 08:34:43   作者:小飞侠-2  
今天小编就为大家分享一篇关于Java中Timer的schedule()方法参数详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
timer.schedule(new MyTask(),long time1,long timer2);

今天算是彻底的搞懂了这个曾经让我为之头疼的方法。下面我就重点介绍一下:

  • 第一个参数,是 TimerTask 类,在包:import Java.util.TimerTask .使用者要继承该类,并实现public void run() 方法,因为 TimerTask 类 实现了 Runnable 接口。
  • 第二个参数的意思是,当你调用该方法后,该方法必然会调用 TimerTask 类 TimerTask 类 中的 run()方法,这个参数就是这两者之间的差值,转换成汉语的意思就是说,用户调用 schedule() 方法后,要等待这么长的时间才可以第一次执行run() 方法。
  • 第三个参数的意思就是,第一次调用之后,从第二次开始每隔多长的时间调用一次 run() 方法。

附:

  技术人员在实现内部办公系统与外部网站一体化的时候,最重要的步骤就是从OA系统读取数据,并且根据网站模板生成最终的静态页面。这里就需要一个定时任务,循环的执行。

  技术人员在写定时任务的时候,想当然的以为Timer.schedule(TimerTask task, longdelay)就是重复的执行task。程序运行后发现只运行了一次,总觉得是task里的代码有问题,花了很长时间调试代码都没有结果。

  仔细研读java api,发现:

  schedule(TimerTask task, long delay)的注释:Schedules thespecified task for execution after the specifieddelay。大意是在延时delay毫秒后执行task。并没有提到重复执行

  schedule(TimerTask task, long delay, long period)的注释:Schedulesthe specified task for repeated fixed-delay execution, beginningafter the specified delay。大意是在延时delay毫秒后重复的执行task,周期是period毫秒。

  这样问题就很明确schedule(TimerTask task, longdelay)只执行一次,schedule(TimerTask task, long delay, longperiod)才是重复的执行。关键的问题在于程序员误以为schedule就是重复的执行,而没有仔细的研究API,一方面也是英文能力不够,浏览API的过程中不能很快的理解到含义。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • Java虚拟机类加载器之双亲委派机制模型案例

    Java虚拟机类加载器之双亲委派机制模型案例

    这篇文章主要介绍了Java虚拟机类加载器之双亲委派机制模型案例,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • druid ParserException类错误问题及解决

    druid ParserException类错误问题及解决

    这篇文章主要介绍了druid ParserException类错误问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Java实现输出数字三角形实例代码

    Java实现输出数字三角形实例代码

    大家好,本篇文章主要讲的是Java实现输出三角形实例代码,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2022-01-01
  • Java中Spring技巧之扩展点的应用

    Java中Spring技巧之扩展点的应用

    这篇文章主要介绍了Java中Spring技巧之扩展点的应用,下文Spring容器的启动流程图展开其内容的相关资料,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-04-04
  • SpringBoot通过@Scheduled实现定时任务及单线程运行问题解决

    SpringBoot通过@Scheduled实现定时任务及单线程运行问题解决

    Scheduled定时任务是Spring boot自身提供的功能,所以不需要引入Maven依赖包,下面这篇文章主要给大家介绍了关于SpringBoot通过@Scheduled实现定时任务以及问题解决的相关资料,需要的朋友可以参考下
    2023-02-02
  • Java import导入及访问控制权限修饰符原理解析

    Java import导入及访问控制权限修饰符原理解析

    这篇文章主要介绍了Java import导入及访问控制权限修饰符过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • java简单读取properties配置文件的方法示例

    java简单读取properties配置文件的方法示例

    这篇文章主要介绍了java简单读取properties配置文件的方法,涉及java针对properties配置的载入及文件属性读取相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • idea不能自动补全yml配置文件的原因分析

    idea不能自动补全yml配置文件的原因分析

    这篇文章主要介绍了idea不能自动补全yml配置文件的原因,通过添加yml文件为配置文件能够很快的解决,具体解决步骤跟随小编一起通过本文学习下吧
    2021-06-06
  • Java多线程的用法详细介绍

    Java多线程的用法详细介绍

    这篇文章主要介绍了Java多线程的用法详细介绍的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
    2017-09-09
  • Spring实战之协调作用域不同步的Bean操作示例

    Spring实战之协调作用域不同步的Bean操作示例

    这篇文章主要介绍了Spring实战之协调作用域不同步的Bean操作,结合实例形式分析了Spring协调作用域不同步的Bean相关配置及使用技巧,需要的朋友可以参考下
    2019-11-11

最新评论