java中Timer是起到定时器的作用,实际执行的事件是由TimerTask类决定的,模板代码如下
package com;
import java.util.Timer;
import java.util.TimerTask;
public class EXAM{
public static void main(String[] args) {
Timer a = new Timer();
a.schedule(new ATask(),1000,2000);
a.schedule(new BTask(),1000,1000);
while (true){
try {
java.lang.Thread.sleep(500);
System.out.println("This is Main Thread");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
class ATask extends TimerTask{
@Override
public void run() {
System.out.println("This is A Task");
}
}
class BTask extends TimerTask{
@Override
public void run() {
System.out.println("This is B Task");
}
}
其A任务是每隔2秒钟执行一次,B任务是每隔1秒钟执行一次,两个都是与1秒钟后开始
而且Timer是开启了一个新线程,并不妨碍主线程的运行
TimerTask类实现了Runnable接口,所以有run方法
Timer中有一个TimerTask数组,默认大小128,用以记录多个Task