什么是Timer-成都快上网建站

什么是Timer

本篇文章给大家分享的是有关什么是Timer,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

为红旗等地区用户提供了全套网页设计制作服务,及红旗网站建设行业解决方案。主营业务为成都网站建设、网站建设、红旗网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

Timer类是Java提供线程用于定时任务调用的工具类。

Timer类是线程安全的。
Timer类使用二进制堆数据结构来存储任务。

Timer类构造函数
Timer():创建一个新的计时器
Timer(boolean isDaemon):创建一个新的计时器,可以指定其关联的线程作为守护程序运行
Timer(String name):创建一个新的计时器,其关联的线程具有指定的名称
Timer(String name,boolean isDaemon):创建一个新的计时器,其关联的线程具有指定的名称,并且可以指定作为守护程序运行

Timer类的方法
cancel():终止此计时器,丢弃当前计划的任何任务。不会干扰当前正在执行的任务(如果存在)。一旦计时器终止,它的执行线程就会正常终止,并且不再可以在其上安排任务。
purge(): 从此计时器的任务队列中删除所有已取消的任务。
schedule(TimerTask task, Date time):计划在指定时间执行的指定任务。其中task表示要安排的任务,time表示执行任务的时间。
schedule(TimerTask task, Date firstTime, long period):从指定的时间开始,为重复的固定延迟执行安排指定的任务。其中firstTime第一次执行任务的时间,period表示连续任务执行之间的时间(以毫秒为单位)
schedule(TimerTask task, long delay):在指定的延迟语法后调度指定的任务执行。其中delay表示执行任务前的延迟(以毫秒为单位)。
schedule(TimerTask task, long delay, long period):在指定的延迟语法后开始,为重复的固定延迟执行安排指定的任务。
scheduleAtFixedRate(TimerTask task,Date firstTime,long period):从指定时间开始,为重复的固定速率执行调度指定的任务。
scheduleAtFixedRate(TimerTask task, long delay, long period):在指定的延迟语法后开始,为重复的固定速率执行调度指定的任务。

schedule()和scheduleAtFixedRate()区别
相同点
1、方法schedule 和方法 scheduleAtFixedRate 都会按顺序执行,所以不用考虑非线程安全的情况。
2、方法schedule 和方法 scheduleAtFixedRate 如果执行任务的时间没有被延迟,那么下一次任务的执行时间参考的是上一次的任务的"开始"时的时间来计算的。
3、方法schedule 和方法 scheduleAtFixedRate 如果执行任务的时间被延迟了,那么下一次任务的执行时间参考的是上一次任务"结束"时的时间来计算。

不同点
schedule 和 scheduleAtFixedRate在使用上基本没什么差别,scheduleAtFixedRate 具有追赶执行性,如果任务在周期性运行过程中被打断了,scheduleAtFixedRate会尝试把之前落下的任务补上运行。而schedule就不管了,接着运行接下来的任务就行了。 

如何理解schedule和scheduleAtFixedRate的案例
暑假到了老师给schedule和scheduleAtFixedRate两个同学布置作业,老师要求学生暑假每天写2页,30天后完成作业。这两个学生每天按时完成作业,直到第10天,出了意外,两个学生出去旅游花了5天时间,这5天时间里两个人都没有做作业。任务被拖延了。这时候两个学生采取的策略就不同了:
schedule重新安排了任务时间,旅游回来的第一天做第11天的任务,第二天做第12天的任务,最后完成任务花了35天。
scheduleAtFixedRate是个守时的学生,她总想按时完成老师的任务,于是在旅游回来的第一天把之前5天欠下的任务以及第16天当天的任务全部完成了,之后还是按照老师的原安排完成作业,最后完成任务花了30天。

以上就是什么是Timer,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。


新闻名称:什么是Timer
标题路径:http://kswjz.com/article/johdes.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流