黑马程序员技术交流社区

标题: 关于定时任务(问题已解决) [打印本页]

作者: 肖亚光    时间: 2013-1-29 10:25
标题: 关于定时任务(问题已解决)
本帖最后由 肖亚光 于 2013-1-29 10:32 编辑
  1. timer.schedule(Task1,1000,24*60*60*1000) ;
  2. timer.schedule(Task2,1000,24*60*60*1000) ;
  3. timer.schedule(Task3,1000,24*60*60*1000) ;
复制代码
这个定时任务的意思 是什么呢?
1.所有的任务的在启动时一起在1秒后开始执行,但是是按照代码执行顺序执行的,也就是Task1执行完以后,Task2立即执行。
2.所有的定时任务是一起执行的,不分先后顺序。都是在1秒后同时执行
3.定时任务是在启动后1秒后开始执行Task1,然后等Task1执行完成后再等1秒后开始执行Task2.

这3类是属于哪一类呢?

假设我用到的是这样的呢?
  1. Calendar cal = Calendar.getInstance();
  2.                 cal.add(Calendar.DAY_OF_MONTH, 1) ;
  3.                 cal.set(Calendar.HOUR_OF_DAY, 1);
  4.                 cal.set(Calendar.MINUTE,10);
  5.                 cal.set(Calendar.SECOND, 0) ;
  6. Timer timer = new Timer();
  7. timer.schedule(Task1,cal.getTime(),24*60*60*1000) ;
  8. cal.set(Calendar.MINUTE,20);
  9. timer.schedule(Task2,cal.getTime(),24*60*60*1000) ;
  10. cal.set(Calendar.MINUTE,30);
  11. 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