返回顶部
首页 > 资讯 > 精选 >java中timer的schedule和scheduleAtFixedRate方法区别详解
  • 420
分享到

java中timer的schedule和scheduleAtFixedRate方法区别详解

javatimerschedule 2023-05-30 19:05:46 420人浏览 安东尼
摘要

timer的schedule和scheduleAtFixedRate方法一般情况下是没什么区别的,只在某个情况出现时会有区别--当前任务没有来得及完成下次任务又交到手上。 我们来举个例子:暑假到了老师给schedule和sched

timer的schedule和scheduleAtFixedRate方法一般情况下是没什么区别的,只在某个情况出现时会有区别--当前任务没有来得及完成下次任务又交到手上。 

我们来举个例子:

暑假到了老师给schedule和scheduleAtFixedRate两个同学布置作业。

老师要求学生暑假每天写2页,30天后完成作业。

这两个学生每天按时完成作业,直到第10天,出了意外,两个学生出去旅游花了5天时间,这5天时间里两个人都没有做作业。任务被拖延了。

这时候两个学生采取的策略就不同了:

schedule重新安排了任务时间,旅游回来的第一天做第11天的任务,第二天做第12天的任务,最后完成任务花了35天。

scheduleAtFixedRate是个守时的学生,她总想按时完成老师的任务,于是在旅游回来的第一天把之前5天欠下的任务以及第16天当天的任务全部完成了,之后还是按照老师的原安排完成作业,最后完成任务花了30天。

package day01;import java.text.SimpleDateFORMat;import java.util.Timer;import java.util.TimerTask;public class Test01 {  public static void main(String[] args) {    final Timer timer = new Timer();    //timer.scheduleAtFixedRate(new TimerTask() {    timer.schedule(new TimerTask() {//分别注释这行和上面这行试一试效果      int count = 1;      @Override      public void run() {        count++;        if (count == 10) {          try {            Thread.sleep(5000);          } catch (InterruptedException e) {            System.out.println("延迟5s");            e.printStackTrace();          }        }        SimpleDateFormat sf = new SimpleDateFormat(            "yyyy MM dd hh:mm:ss");        System.out.println("当前时间:"            + sf.format(System.currentTimeMillis()) + "计划时间:"            + sf.format(scheduledExecutionTime()));      }    }, 1000, 1000);  }}

--结束END--

本文标题: java中timer的schedule和scheduleAtFixedRate方法区别详解

本文链接: https://lsjlt.com/news/220548.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • java中timer的schedule和scheduleAtFixedRate方法区别详解
    timer的schedule和scheduleAtFixedRate方法一般情况下是没什么区别的,只在某个情况出现时会有区别--当前任务没有来得及完成下次任务又交到手上。 我们来举个例子:暑假到了老师给schedule和sched...
    99+
    2023-05-30
    java timer schedule
  • 详解java中List中set方法和add方法的区别
    目录前言相同点不同点总结前言 在Java中的常用的集合接口List中有两个非常相似的方法: E set(int index, E element); void add(int ind...
    99+
    2022-11-13
    java List中set和add区别 java set add区别
  • Java中equals和==的区别详解
    目录1.java中的数据类型,可分为两类: 2.再稍微改动一下程序,会有更奇怪的发现: 3. 字符串缓冲池 4.再次更改程序: 总结1.java中的数据类型,可分为两类: 1.基本...
    99+
    2024-04-02
  • 详解Java中==和equals()的区别
    目录1. ==1.1 基本数据类型1.2 引用数据类型1.3 小结2. equals3. 总结1. == == 是运算符,用来判断两个值是否相等,==可以使用在基本数据类型变量和引用...
    99+
    2024-04-02
  • 详解Java中方法重写和方法重载的6个区别
    目录1.方法重写1.1 基本用法1.2 使用场景1.3 注意事项2.方法重载2.1 基本使用2.2 使用场景2.3 注意事项3.方法重写 VS 方法重载总结方法重写(Override...
    99+
    2024-04-02
  • MySQL中CONCAT和GROUP_CONCAT方法的区别详解
    例子表 CREATE TABLE `book` ( `id` int(11) NOT NULL AUTO_INCREMENT, `book_name` varchar(255) CHARACTER S...
    99+
    2023-01-05
    MySQLCONCAT和GROUP_CONCAT
  • Java中Exception和Error的区别详解
    世界上存在永远不会出错的程序吗?也许这只会出现在程序员的梦中。随着编程语言和软件的诞生,异常情况就如影随形地纠缠着我们,只有正确的处理好意外情况,才能保证程序的可靠性。 java语...
    99+
    2024-04-02
  • java中StringStringBuffer和StringBuilder的区别详解
    目录从声明定义上来谈从结构上来谈从线程安全来谈总结从声明定义上来谈 只有String 可以 直接声明创建 而 StringBuffer 与 StringBuilder 必须去new...
    99+
    2024-04-02
  • java compare compareTo方法区别详解
    1,compareTo(Object o)方法是java.lang.Comparable<T>接口中的方法,当需要对某个类的对象进行排序时,该类需要实现Comparabl...
    99+
    2024-04-02
  • Java中的定时器Timer详解
    目录总结简单来说,定时器就相当于一个“闹钟”,给定时器设定一个任务,约定这个任务在xxx时间之后执行~ Timer类提供了一个核心接口,schedule(安排) 指定一个任...
    99+
    2024-04-02
  • Java 中泛型 T 和 ? 的区别详解
    目录泛型中 T 类型变量 和 通配符 区别Generic Types 类型变量用法2.声明通用的方法 – 泛型方法:有界类型参数Wildcards 通配符1.上界通配符...
    99+
    2024-04-02
  • C#四种计时器Timer的区别和用法
    1、System.Threading.Timer 线程计时器 1、最底层、轻量级的计时器。基于线程池实现的,工作在辅助线程。 2、它并不是内在线程安全的,并且使用起来比其他计时器更麻...
    99+
    2024-04-02
  • Python中set与frozenset方法和区别详解
    set(可变集合)与frozenset(不可变集合)的区别: set无序排序且不重复,是可变的,有add(),remove()等方法。既然是可变的,所以它不存在哈希值。基本功能包括关系测试和消除重复元素. ...
    99+
    2022-06-04
    详解 区别 方法
  • java 中 orElse 和 orElseGet 方法区别
    orElse 和 orElseGet 是 Optional 类的两个方法,用于处理可能为空的值。 区别 orElse 方法: orElse 方法接受一个默认值作为参数,并在 Optional 对象为空...
    99+
    2023-10-18
    java 开发语言
  • jsp request.getParameter() 和request.getAttribute()方法区别详解
    getParameter 是用来接受用post个get方法传递过来的参数的. getAttribute 必须先setAttribute. (1)request.getPara...
    99+
    2024-04-02
  • Java中class和Class的区别示例详解
    目录一.class与Class区别二.Class介绍三.如何得到Class对象1.通过getClass()方法获取到Class对象2.通过forName()方法获取到Class对象3...
    99+
    2024-04-02
  • 基于Java中throw和throws的区别(详解)
    系统自动抛出的异常所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常,并且 Java 强烈地要求应用程序进行完整的异常处理,给用户友好的提示,或者修正后使程序继续执行。语句抛出的异常用户程序自定义的异常和应用程序特定的异常,必须...
    99+
    2023-05-31
    java throw throws
  • java中 String和StringBuffer的区别实例详解
    java中 String和StringBuffer的区别实例详解String:           是对象不是原始类型.  &nb...
    99+
    2023-05-31
    string stringbuffer buf
  • Java中Stream流中map和forEach的区别详解
    目录什么是 stream 流MapforEach使用场景不是很难的知识,但是今天犯错了,记录一下 什么是 stream 流 我们在使用集合或数组对元素进行操作时往往会遇到这种情况:通...
    99+
    2024-04-02
  • java中sleep方法和wait方法的五个区别
    目录区别一:语法使用不同区别二:所属类不同区别三:唤醒方式不同区别四:释放锁资源不同sleep 不释放锁wait 释放锁区别五:线程进入状态不同总结前言: sleep 方法和 wai...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作