首页 > 代码库 > Timer理解

Timer理解

Timer的官方描述是:A facility for threads to schedule tasks for future execution in a background thread. Tasks may be scheduled for one-time execution, or for repeated execution at regular intervals.

意思就是在一个后台线程中执行定时任务。

Timer是一个线程安全的类,不同的线程可以共享同一个Timer对象。

Timer不适合执行很耗时的操作,它包含两个重要的内部类TaskQueue(存放TimerTask的队列),和TimerThread(执行的线程)。

当一个Timer对象的所有引用都消失,并且所有人物都执行结束,就会自动结束等待回收,不过具体什么时候回收就要靠JVM了。当执行任务时出现意外终止,后续的任务都不会在执行,而是抛出IllegalStateException。

不过Timer没有时时性,java5.0以后加入了java.util.concurrent包,它里面的ScheduledThreadPoolExecutor类,具有Timer/TimerTask的功能。

Timer理解