Java Timer与TimerTask详解:定时任务与调度
需积分: 10 64 浏览量
更新于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的顺序依次执行,而不是并行执行。"
168 浏览量
244 浏览量
点击了解资源详情
244 浏览量
2014-07-14 上传
229 浏览量
145 浏览量
248 浏览量
455 浏览量
![](https://profile-avatar.csdnimg.cn/222dd9914c6f44d4abcef128042d531c_tangpeng1121.jpg!1)
tangpeng1121
- 粉丝: 1
最新资源
- FolderIco 6.0:Windows图标个性化修改神器
- STM32 SPI主机程序:DMA传输示例解析
- 深入探索Coursera Android手持系统开发(第1部分)
- 利用光线投影算法实现SSD、MIP与DRR技术
- 基于DXFLIB开发的DXF文件显示工具(MFC实现)
- YOLO-crx插件:网络导航的智能选择者
- Bootstrap基础组件示例演示与中文应用解析
- Notepad++ 如何安装并使用JSON格式化插件
- 华为leetCode编程练习题解与常见错误总结
- Linux下操作USB2.0/3.0设备的cyusb应用库发布
- a4abash.github.io:展现个人技术实力的个人网站
- Windows图标设计工具IconEdit2 v7.8.1.0发布
- MATDS程序包中的Lyapunov指数计算工具
- 实现短信猫功能的短信平台驱动程序开发示例
- 数据学习的基石:林轩田课程推荐图书
- Android SQLite数据库迁移工具:SQLiteMergerHelper使用教程