常用技术-Timer定时器

news/2024/10/18 12:28:38/

什么是Timer

Timer是JDK自带的任务调度工具类,只需要java.util.Timer和java.util.TimerTask两个类就可以实现基本任务调度功能

Timer是一种线程设施,用于安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行,可以看成一个定时器,可以调度TimerTask。TimerTask是一个抽象类,实现了Runnable接口,所以具备了多线程的能力

定时器就像使用闹钟一样,可以在固定的时间做某件事,也可以在固定的时间段重复做某件事

这个类是线程安全的:多个线程可以共享一个单独的Timer对象,而不需要外部同步。

使用的场景: 比如需要定时删除运行产生的日志垃圾,定时去同步数据库里的一些数据,如人员值班信息等都可以使用定时器去实现

Timer的快速入门


Timer的初始化方法

 Timer类的方法

具体的使用案例 

案例1:指定延迟5秒后执行,只执行一次

 案例2:延迟一秒执行,每十秒执行一次,变量i=5时停止定时器

注意点:如何使用cannel()方法停止了定时器,那么与定时器相关的所有的任务都会停止执行 

案例3:每隔五秒输出内容,不延迟

Timer的优缺点

优点

JDK本身就自带该工具类,无需第三方依赖,只需实现TimerTask类即可使用Timer进行调度配置,使用起来简单方便

缺点:

Timer中所有的任务都一个TaskThread线程来调度和执行,任务的执行方式是串行的,如果前一个任务发生延迟或异常会影响到后续任务的执行 


http://www.ppmy.cn/news/1401921.html

相关文章

SD卡备份和烧录ubuntu20.04镜像

设备及系统:nuc幻影峡谷工控机,ubuntu20.04,树莓派4B,SD卡读卡器 一、确定SD卡设备号的两种方法 方法1: 将有ubuntu镜像的SD卡插入读卡器,再将读卡器插入电脑主机,在 工具 中打开 磁盘&#…

Kubeflow文档1:介绍与架构

Kubeflow 2024/3/19版本的文档 此专栏用来展示相关的内容翻译,重点关注本地部署,关于运营商的方案,请自行查阅 文档地址https://www.kubeflow.org/docs/ 开始编辑时间:2024/3/27;最后编辑时间2024/3/27 Kubeflow文…

梦中梦中梦?(梦中梦?)

梦中梦中梦?(梦中梦?) 早上7.40左右起床上厕所(大的)开始自律的一天,上完了刷了会手机,决定再睡一会。在起和睡之间犹豫了几次还是决定睡一会,就开始了这辈子头一次梦中…

纯欣赏:一大波智能家居的界面,美的不像话

大家好,本次给大家分享一波智能家居的界面,漂亮大赞。

数据结构·二叉树(2)

目录 1 堆的概念 2 堆的实现 2.1 堆的初始化和销毁 2.2 获取堆顶数据和堆的判空 2.3 堆的向上调整算法 2.4 堆的向下调整算法 2.4 堆的插入 2.5 删除堆顶数据 2.6 建堆 3 建堆的时间复杂度 3.1 向上建堆的时间复杂度 3.2向下建堆的时间复杂度 4 堆的排序 前言&…

oppo,快手25届暑期实习内推

oppo,快手25届暑期实习内推 ①OPPO 【内推码】:X6866447 【一键内推】:https://careers.oppo.com/university/oppo/campus/post?shareId4546 【需求岗位】软件类、AI/算法类、硬件类、设计类、产品类 ②快手 【岗位】算法、工程、游戏,产品运…

大语言模型---强化学习

本文章参考,原文链接:https://blog.csdn.net/qq_35812205/article/details/133563158 SFT使用交叉熵损失函数,目标是调整参数使模型输出与标准答案一致,不能从整体把控output质量 RLHF(分为奖励模型训练、近端策略优化…

基于easyx库的C/C++游戏编程实例-飞机大战

飞机大战游戏设计 首先创建飞机/子弹结构: struct Plane {int x;int y;bool live;int width;int height;int type;int hp; }player,bul[BUL_NUM],enemy[ENE_NUM];你需要加载图片: void ImageLoad() {//背景loadimage(&bg[0], "./image/飞机大…