A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 肖亚光 中级黑马   /  2013-1-29 10:25  /  1117 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马