所有类型的 Java 应用程序一般都需要计划重复执行的任务
企业应用程序需要计划每日的日志或者晚间批处理过程
一个 J2SE 或者 J2ME 日历应用程序需要根据用户的约定计划闹铃时间
不过,标准的调度类 Timer 和 TimerTask 没有足够的灵活性,无法支持通常需要的计划任务类型
在本文中,Java 开发人员 Tom White 向您展示了如何构建一个简单通用的计划框架,以用于执行任意复杂的计划任务
我将把 java
Timer 和 java
TimerTask 统称为 Java 计时器框架,它们使程序员可以很容易地计划简单的任务(注意这些类也可用于 J2ME 中)
在 Java 2 SDK, Standard Edition, Version 1
3 中引入这个框架之前,开发人员必须编写自己的调度程序,这需要花费很大精力来处理线程和复杂的 Object
w ait() 方法
不过,Java 计时器框架没有足够的能力来满足许多应用程序的计划要求
甚至一项需要在每天同一时间重复执行的任务,也不能直接使用 Timer 来计划,因为在夏令时开始和结束时会出现时间跳跃
本文展示了一个通用的 Timer 和 TimerTask 计划框架,从而允许更灵活的计划任务
这个框架非常简单 —— 它包括两个类和一个接口 —— 并且容易掌握
如果您习惯于使用 Java 定时器框架,那么您应该可以很快地掌握这个计划框架
计划单次任务 计划框架建立在 Java 定时器框架类的基础之上
因此,在解释如何使用计划框架以及如何实现它之前,我们将首先看看如何用这些类进行计划
想像一个煮蛋计时器,在数分钟之后(这时蛋煮好了)它会发出声音提醒您
清单 1 中的代码构成了一个简单的煮蛋计时器的基本结构,它用 Java 语言编写: 清单 1
EggTimer 类 packag