Java Timer与TimerTask详解:定时任务与调度
需积分: 10 70 浏览量
更新于2024-09-15
收藏 4KB TXT 举报
"Java中的Timer和TimerTask是用于创建定时任务的工具类,它们提供了调度执行任务的能力。在Java2平台中,Timer类是管理定时任务的核心类,而TimerTask是实现具体任务的抽象类。使用Timer和TimerTask可以实现定时触发的操作,如周期性执行某个任务或在特定时间点执行一次任务。然而,需要注意的是,每个Timer实例对应一个后台线程,这意味着所有的TimerTask都会在这个线程中执行,因此不适用于大量并发的任务调度。此外,TimerTask实现了Runnable接口,意味着它可以通过调用run()方法来执行任务逻辑。
Timer类的方法包括:
1. Timer(): 默认构造器,创建一个新的Timer对象,按照默认方式调度任务。
2. Timer(boolean): 参数为true时,创建一个定时器,仅用于一次性任务,防止内存泄漏。
3. cancel(): 停止Timer,取消所有计划但未执行的任务。
4. schedule(TimerTask task, Date time): 在指定的Date时间点执行任务。
5. schedule(TimerTask task, Date firstTime, long period): 在指定的Date时间点首次执行任务,然后每隔period毫秒再次执行。
6. schedule(TimerTask task, long delay): 延迟delay毫秒后执行任务。
7. schedule(TimerTask task, long delay, long period): 延迟delay毫秒后首次执行任务,然后每隔period毫秒再次执行。
8. scheduleAtFixedRate(TimerTask task, Date firstTime, long period): 按照固定的速率执行任务,即在每个周期的开始时刻执行,而不是在上一个任务结束时。
9. scheduleAtFixedRate(TimerTask task, long delay, long period): 同上,延迟delay毫秒后开始按固定速率执行任务。
TimerTask类的方法包括:
1. cancel(): 取消一个TimerTask,如果该任务尚未执行,那么它将不再执行。已启动的任务可能不会立即停止,除非Timer也被取消。
2. run(): 这是TimerTask的抽象方法,需要由子类实现,定义了具体的任务逻辑。
3. scheduledExecutionTime(): 返回任务计划的执行时间,用于检查任务是否已经过期或者尚未到达执行时间。
在使用Timer和TimerTask时,需要注意它们并不是线程安全的,如果多个线程同时修改Timer或TimerTask,可能会出现不可预测的行为。此外,由于Timer内部使用单线程模型,所以任务的执行顺序是保证的,但是如果有多个任务需要并发执行,它们会按照添加到Timer的顺序依次执行,而不是并行执行。"
点击了解资源详情
点击了解资源详情
点击了解资源详情
2023-09-14 上传
2014-07-14 上传
2019-03-14 上传
2022-09-20 上传
2021-07-11 上传
2021-06-25 上传
tangpeng1121
- 粉丝: 1
- 资源: 93
最新资源
- HPUX 11i V3系统管理员指南
- DIV+CSS布局大全
- J2EE 设计开发编程
- Serial ATA 2.6 Specification
- ITIL-white
- 《LINUX与UNIX SHELL编程指南》读书笔记
- 单源最短路径问题的Dijkstra算法
- Oracle 10g R2 Concepts双语版
- 02 第四章 使用SQL语句.pdf
- spring2.5 reference
- API函数大全(32 Bit Section PowerBuilder API)
- 51汇编指令表,一目了然,希望大家多多交流学习
- Serial ATA Specification Rev. 2.5
- 01 第一~三章.pdf
- asp.net速成教程
- Understanding JTA