本帖最后由 肖亚光 于 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) ;
呢?
|
|