码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA定时任务调度之Timer入门详解(二)

时间:2018-01-10 23:52:01      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:任务   控制   run   ima   http   date   png   time   bubuko   

 

  在上篇的JAVA定时任务调度之Timer入门详解(一)文章中,主要介绍了下Timer,接下来我们一起来看看Timer的一些常用方法。

  1、schedule()的4种用法。

    第一种:schedule(TimerTask task, Date time);

    task:安排的任务,time:具体执行时间。这个函数表达的意义是:在时间等于或超过time的时候执行且执行一次task。测试内容如下

    MyTimerTask.java的代码跟第一篇一样,MyTimer.java的部分代码截图如下:

    技术分享图片

    运行后,控制台输出如下图:

     技术分享图片

    第一行打印当前时间,第二行和第三行打印的是MyTimeTask.java中run()的输出。由此一目了然

    第二种:schedule(TimerTask task, Date firstTime, long period);

    firstTime:指第一次执行task的时间,period指task执行周期。本方法说的是task在时间等于或者firstTime的时候执行一次(第一次),之后每隔period毫秒执行一次。废话少说,直接上代码。

    MyTimer.java的部分测试代码截图如下:

    技术分享图片

    控制台部分输出如下:

    技术分享图片

    第一行打印的是当前时间,第二行和第三行打印的是第一次执行(3秒后),之后每隔两秒执行一次。

    第三种:schedule(TimerTask task, lang delay);

    task:安排的任务,time:具体执行时间。这个函数表达的意义是:在时间等于或超过当前时间的delay毫秒的时候执行且执行一次task。测试内容如下

    MyTimerTask.java的代码跟第一篇一样,MyTimer.java的部分代码截图如下:

    技术分享图片

    控制台输出如下

    技术分享图片

    第一行为当前时间,后两行为当前时间的两秒后task执行的一次输出。

    第四种:schedule(TimerTask task, long delay, long period); 意思是在当前时间的delay毫秒后,task执行第一次,之后每隔period毫秒执行一次。

    第四种相信大家结合第二种和第三种就可以懂了,这里不再给测试代码。

   2.scheduleAtFixedRate()的两种用法

    第一种:scheduleAtFixedRate(TimerTask task, Date firstTime, long period);它和schedule的第二种用法在此处可以理解为相同,都是表示task在时间等于或者firstTime的时候执行一次(第一次),之后每隔period毫秒执行一次。测试代码如下:

    MyTimerTask.java的代码跟第一篇一样,MyTimer.java的部分代码截图如下:

    技术分享图片

    控制台输出如下:

    技术分享图片

    第一行打印的是当前时间,第二三行打印的是当前时间的3秒后task执行的第一次,之后每隔2秒执行一次。

    第二种:scheduleAtFixedRate(TimerTask task, long delay, long period);表示task在经过delay毫秒的时间之后执行第一次,之后每隔period毫秒执行一次。代码如下:

    MyTimer.java的部分代码截图如下:

    技术分享图片

    控制台输出如下:

    技术分享图片

 

 

 

 

 

    

JAVA定时任务调度之Timer入门详解(二)

标签:任务   控制   run   ima   http   date   png   time   bubuko   

原文地址:https://www.cnblogs.com/qq503012154/p/8261449.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!