Java Timer 实现简单定时任务

4星 · 超过85%的资源 需积分: 10 12 下载量 47 浏览量 更新于2024-10-14 1 收藏 2KB TXT 举报
该资源提供了一个简单的Java定时器示例,使用自定义的`Timer`类和`Clock`类来实现定时任务的执行。`Timer`类负责设置间隔时间、存储任务并启动计时,而`Clock`类则模拟了时间的流逝。 在Java中,定时任务通常涉及到`java.util.Timer`和`java.util.TimerTask`类,但这个例子中,作者创建了自己的`Timer`和`Clock`类来实现类似的功能。`Timer`类的核心在于它接受一个间隔时间和一个`Task`对象作为参数,然后在一个新线程中运行一个循环,检查当前时间是否超过了设定的间隔,如果超过,则执行任务。 `Timer`类的主要成员变量包括: 1. `interval`: 存储了定时器的间隔时间,单位为毫秒。 2. `task`: 代表要执行的任务,自定义的`Task`类应该包含一个`doit()`方法来表示实际的任务操作。 3. `clock`: 使用`Clock`类来获取当前模拟的时间。 `Timer`类的主要方法有: - `getTask()`: 获取关联的任务对象。 - `getInterval()`: 获取设定的间隔时间。 `Clock`类继承自`Thread`,用于模拟时间的流动。它有两个成员变量: 1. `oldTime`: 记录系统启动时的时间。 2. `currTime`: 表示当前模拟的时间。 `Clock`类的`run()`方法是一个无限循环,不断更新`currTime`,使其等于系统当前时间。`getCurrTime()`方法用于获取当前模拟时间。 在这个示例中,`Timer`类的构造函数启动了一个新的线程,该线程会持续检查`Clock`的当前时间是否达到或超过设定的间隔。如果达到,就执行`Task`的`doit()`方法,并将`Clock`的当前时间重置为0,以便下一次触发。 这个例子展示了如何用基本的Java编程概念实现一个简单的定时器,但请注意,这并不是Java标准库提供的定时解决方案,实际开发中可能会选择使用`java.util.Timer`和`java.util.TimerTask`或者`java.concurrent.ScheduledExecutorService`等更强大且线程安全的工具。