慕粉2248088296
2018-04-09 20:04
schedule已经涵盖了scheduleAtFixedRate的两个方法,那schedule和
scheduleAtFixedRate相同的两个方法功能相同,区别是什么呢
实际执行语句的时间 晚于 设置的timer开始时间:scheduleAtFixedRate会补上应该执行的次数(以连续执行的方式,在实际上第一次执行的时候),schedule错过了的次数不补。
如果任务的耗时超过设置的时间间隔:scheduleAtFixedRate会严格按照时间点执行(于是任务并行执行着),而schedule 上一个任务什么时候完成什么时候执行下一个任务(延迟,串行执行)
好吧,我知道你没看懂,我写的我也看不懂,举例子:
第一个区别: ScheduleAtFixedRate同学旷课两天,一来到学校,就把前两天的课共计16节给补上了,并且今天该上的课也按时上了。Schedule同学也旷了两天课,一来学校,就像自己没旷课一样,今天的课按时上,昨天和前天的课不管了。
第二个区别:ScheduleAtFixedRate写作业是按时点的,安排5点整写英语,六点整写数学,7点整写历史,如果到6点整英语还没写完,就英语和数学一块写。Schedule同学写作业的时间安排相同,不同的是5点开始写的英语到6点还没写完,他就继续写英语,啥时候英语作业写完了,再啥时候写数学。
实际执行语句的时间 晚于 设置的timer开始时间:scheduleAtFixedRate会补上应该执行的次数(以连续执行的方式,在实际上第一次执行的时候),schedule错过了的次数不补。
如果任务的耗时超过设置的时间间隔:scheduleAtFixedRate会严格按照时间点执行(于是任务并行执行着),而schedule上一个任务什么时候完成什么时候执行下一任误才执行(无视延迟,串行执行)
好吧,我知道你没看懂,我写的我也看不懂,举例子:
第一个区别: ScheduleAtFixedRate同学旷课两天,一来到学校,就把前两天的课共计16节给补上了,并且今天该上的课也按时上了。Schedule同学也旷了两天课,一来学校,就像自己没旷课一样,今天的课按时上,昨天和前天的课不管了。
第二个区别:ScheduleAtFixedRate写作业是按时点的,安排5点整写英语,六点整写数学,7点整写历史,如果到6点整英语还没写完,就英语和数学一块写。Schedule同学写作业的时间安排相同,不同的是5点开始写的英语到6点还没写完,他就继续写英语,啥时候英语作业写完了,再啥时候写数学。
Java定时任务调度工具详解之Timer篇
23913 学习 · 32 问题
相似问题