加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

schedule() 和 scheduleAtFixedRate() 的区别--转载

发布时间:2020-12-14 06:20:27 所属栏目:Java 来源:网络整理
导读:1.? schedule() ,2个参数方法: 在执行任务时,如果指定的计划执行时间scheduledExecutionTime 2.? schedule() ,3个参数方法: 在执行任务时,如果指定的计划执行时间scheduledExecutionTime 3.? scheduleAtFixedRate() ,3个参数方法: 在执行任务时,如

1.? schedule() ,2个参数方法:在执行任务时,如果指定的计划执行时间scheduledExecutionTime <= systemCurrentTime,则task会被立即执行。2.? schedule() ,3个参数方法:在执行任务时,如果指定的计划执行时间scheduledExecutionTime <= systemCurrentTime,则task会被立即执行,之后按period参数固定重复执行。3.? scheduleAtFixedRate() ,3个参数方法:在执行任务时,如果指定的计划执行时间scheduledExecutionTime<= systemCurrentTime,则task会首先按执行一次;然后按照执行时间、系统当前时间和period参数计算出过期该执行的次数,计算按照: (systemCurrentTime-scheduledExecutionTime)/period,再次执行计算出的次数;最后按period参数固定重复执行。4.? schedule() 和scheduleAtFixedRate()?schedule()方法更注重保持间隔时间的稳定。scheduleAtFixedRate()方法更注重保持执行频率的稳定。

<span style="color: #0000ff;">import<span style="color: #000000;"> java.util.Date;
<span style="color: #0000ff;">import<span style="color: #000000;"> java.util.Timer;

<span style="color: #0000ff;">public <span style="color: #0000ff;">class<span style="color: #000000;"> TestTask {

<span style="color: #008000;">/**<span style="color: #008000;">

  • <span style="color: #808080;">@param<span style="color: #008000;"> args
    <span style="color: #008000;">*/
    <span style="color: #0000ff;">public <span style="color: #0000ff;">static <span style="color: #0000ff;">void<span style="color: #000000;"> main(String[] args){
    Date crtTime = <span style="color: #0000ff;">new<span style="color: #000000;"> Date();
    <span style="color: #0000ff;">long crt =<span style="color: #000000;"> crtTime.getTime();
    Timer timer = <span style="color: #0000ff;">new<span style="color: #000000;"> Timer();

<span style="color: #008000;">//<span style="color: #008000;"> 在指定时间执行
CommonTask task1 = <span style="color: #0000ff;">new CommonTask("【任务一】"<span style="color: #000000;">);
timer.schedule(task1,<span style="color: #0000ff;">new Date(crt - 1000<span style="color: #000000;">));

<span style="color: #008000;">//<span style="color: #008000;"> schedule和scheduleAtFixedRate
CommonTask task11 = <span style="color: #0000ff;">new CommonTask("【任务二】"<span style="color: #000000;">);
timer.schedule(task11,<span style="color: #0000ff;">new Date(crt - 10 * 1000),1000<span style="color: #000000;">);

CommonTask task12 = <span style="color: #0000ff;">new CommonTask("【任务三】"<span style="color: #000000;">);
timer.schedule(task12,1000<span style="color: #000000;">);

<span style="color: #008000;">//<span style="color: #008000;"> schedule和scheduleAtFixedRate
CommonTask task13 = <span style="color: #0000ff;">new CommonTask("【任务四】"<span style="color: #000000;">);
timer.schedule(task13,<span style="color: #0000ff;">new Date(crt + 2 * 1000),1000<span style="color: #000000;">);

CommonTask task14 = <span style="color: #0000ff;">new CommonTask("【任务五】"<span style="color: #000000;">);
timer.scheduleAtFixedRate(task14,1000<span style="color: #000000;">);
}

}

原文地址:http://blog.163.com/nice_2012/blog/static/192666148201231635332934/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读