黑马程序员技术交流社区
标题:
关于定时任务(问题已解决)
[打印本页]
作者:
肖亚光
时间:
2013-1-29 10:25
标题:
关于定时任务(问题已解决)
本帖最后由 肖亚光 于 2013-1-29 10:32 编辑
timer.schedule(Task1,1000,24*60*60*1000) ;
timer.schedule(Task2,1000,24*60*60*1000) ;
timer.schedule(Task3,1000,24*60*60*1000) ;
复制代码
这个定时任务的意思 是什么呢?
1.所有的任务的在启动时一起在1秒后开始执行,但是是按照代码执行顺序执行的,也就是Task1执行完以后,Task2立即执行。
2.所有的定时任务是一起执行的,不分先后顺序。都是在1秒后同时执行
3.定时任务是在启动后1秒后开始执行Task1,然后等Task1执行完成后再等1秒后开始执行Task2.
这3类是属于哪一类呢?
假设我用到的是这样的呢?
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, 1) ;
cal.set(Calendar.HOUR_OF_DAY, 1);
cal.set(Calendar.MINUTE,10);
cal.set(Calendar.SECOND, 0) ;
Timer timer = new Timer();
timer.schedule(Task1,cal.getTime(),24*60*60*1000) ;
cal.set(Calendar.MINUTE,20);
timer.schedule(Task2,cal.getTime(),24*60*60*1000) ;
cal.set(Calendar.MINUTE,30);
timer.schedule(Task3,cal.getTime(),24*60*60*1000) ;
复制代码
这样又是什么样的执行顺序呢?
是等明天1:10的时候开始执行Task1,Task1执行完成后还没有到1:20分,这时候要等到1:20才能执行Task2.如果Task1执行完成后超过了1:20分钟,Task2是在1:20分准时执行还是要等到Task1完成后立即执行?还是说Task2的时间与Task1的时间差10分钟,所以不管Task1在什么时候执行完成后,都要等10分钟才能执行Task2?
如果上面的代码我把Task2改为
timer.schedule(Task2,1000,24*60*60*1000) ;
呢?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2