像是一个闹钟定时,在一定时间之后被唤醒并执行某个之前设定好的任务,join(指定超时时间),sleep(指定休眠时间)都是基于系统内部的定时器来实现的。
java.util.Timer核心方法就一个,schedule参数有两个:任务是啥(一段代码),多长时间之后执行
public class 定时器 {
public static void main(String[] args) {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
System.out.println("hello timer");
}
}, 3000);
}
}
Timer内部组成:
1.描述任务
创建一个专门的类来表示一个定时器的任务TimerTask,这个MyTask类的比较规则不是默认存在的,需要我们手动指定按照时间大小来比较的。
//创建一个类表示一个任务
class MyTask{
//任务描述
private Runnable runnable;
//任务具体啥时候干
private long time;
//after是一个时间间隔,不是觉得时间戳的值
public MyTask(Runnable runnable, long after){
this.runnable = runnable;
this.time = System