很多时候我们希望任务可以定时的周期性的执行,在最初的JAVA工具类库中,通过Timer可以实现定时的周期性的需求,但是有一定的缺陷,例如:Timer是基于绝对时间的而非支持相对时间,因此Timer对系统时钟比较敏感。虽然有一定的问题,但是我们还是从这个最简单的实现开始研究。
首先,我们准备一些讨论问题的类:TimerTask1和TimerLongTask,如下
Java代码
publicclassTimerTask1extendsTimerTask {
@Override
publicvoidrun() {
String base = "abcdefghijklmnopqrstuvwxyz0123456789";
Random random = newRandom();
StringBuffer sb = newStringBuffer();
for(inti =0; i <10; i++) {
intnumber = random.nextInt(base.length());
sb.append(base.charAt(number));
}
System.out.println(newDate()+","+sb.toString());
}
}
这个类负责生成一个含有10个字符的字符串,这里我们将输出时间打印出来,近似认为是任务执行的时间。
Java代码