1. Timer是一个定时器,它可以根据指定的时间,指定的执行周期来执行固定的任务TimerTask,例子如下:

Timer与线程的关系,在Timer源代码中可现如下代码:
1. 以下为Timer的默认构造方法,起调用了自身的一个有参构造函数:

2.有参构造函数代码如下:

3. 有参构造函数设置了当前线程的名字并启动该线程,线程代码如下:

4. TimerThread类的源代码如下:

由以上代码可以看出Timer其实就是一个Thread类的子类。
TimerTask与线程的关系:
1. 以下为TimerTask的构造函数的源码:

2. 以下为TimerTask类的定义:

又以上代码可以看出,TimerTask是一个实现了Runnable接口的线程,此类中有一个抽象的run方法,如下:

所以我们必须在TimerTask的子类中实现这个run方法。
总结:
以上Timer和TimerTask的关系类似如下线程关系:

本文深入解析了 Java 中 Timer 类的工作原理及其与 TimerTask 的关系。Timer 实际上是 Thread 的子类,负责按指定时间间隔执行任务;而 TimerTask 是实现了 Runnable 接口的类,用户需要覆盖其 run 方法来定义具体要执行的任务。
2456

被折叠的 条评论
为什么被折叠?



