JDK中的Timer总结

news2024/11/25 5:49:29

目录

  • 一、背景介绍
  • 二、思路&方案
  • 三、过程
    • 1.Timer关键类图
    • 2.Timer的基本用法
    • 3.结合面向对象的角度进行分析总结
  • 四、总结
  • 五、升华

一、背景介绍

最近业务中使用了jdk中的Timer,通过对Timer源码的研究,结合对面向对象的认识,对Timer进行针对性的总结

二、思路&方案

  • 1.Timer关键类图
  • 2.Timer的基本用法
  • 3.结合面向对象的角度进行分析总结

三、过程

1.Timer关键类图

在这里插入图片描述

2.Timer的基本用法


import java.util.Timer;
import java.util.TimerTask;

public class Client {

    public static void main(String[] args) {
        Timer timer = new Timer();
        timer.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
                System.out.println(11111);
            }
        },0,1000);

        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }

        timer.cancel();
        //这里将Timer置为null,以便于下次再使用必须重新实例化
        timer = null;

    }



}

3.结合面向对象的角度进行分析总结

分析总结见四、总结

四、总结

  • 1.层次很分明;对外通过Timer将TaskQueue和TimerThread包装起来,所有的调用都通过Timer进行
  • 2.TaskQueue和TimerThread为final修饰,并且在Timer实例化之时就存在了,同生共死的关系增加安全性
  • 3.构造函数通过方法多态,将多种可能进行了实现以满足不同场景的需求
  • 4.行为细粒度的划分,使得行为的内聚性更强,复用性更高
  • 5.调用了Timer的canlel()方法该Timer将不可再用,防止Timer一直执行占用资源

五、升华

修炼的境界,看山是山(刚接触的时候,只知道皮毛,用起来还是会出各种问题)、看山不是山(达到了熟练运用,但是对应内部的实现原理还是很模糊)、看山还是山(通过对原理的分析,学习到了设计思想,能够将设计思想运用到各种场景中)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/904264.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

简单认识Docker数据管理

文章目录 为何需要docker数据管理数据管理类型 一、数据卷二、数据卷容器三、容器互联 为何需要docker数据管理 因为数据写入后如果停止了容器,再开启数据就会消失,使用数据管理的数据卷挂载,实现了数据的持久化,重启数据还会存在…

合宙Air724UG LuatOS-Air LVGL API--运行

硬件准备 可以使用 724A13 开发板 ST7735S 屏幕 或者 iCool 开发板 软件准备 底层固件 底层固件需要支持 LVGL,通常选用的固件是 LuatOS-Air_VXXXX_RDA8910_BT_FLOAT.pac。 当然,您也可以通过 更新说明 选择支持 LVGL 的其他底层版本。 脚本 首先需要…

垂类模型大有前景,但AGI却给自己“挖了个坑”

巨量模型是个“坑”,但垂直模型不是。 数科星球原创 作者丨苑晶 编辑丨大兔 2023年4月,GPT-5的相关消息引起了一阵轰动。彼时,人们对巨量大模型既有期待、也有恐惧。更有甚者,认为人类历史或许将因此而画上终止符。 但很快&#…

Java并发编程之线程池详解

目录 🐳今日良言:不悲伤 不彷徨 有风听风 有雨看雨 🐇一、简介 🐇二、相关代码 🐼1.线程池代码 🐼2.自定义实现线程池 🐇三、ThreadPoolExecutor类 🐳今日良言:不悲伤 不彷徨 有风听风 有…

基于 BEM 规范实现简单的全局 scss

该文章是在学习 小满vue3 课程的随堂记录示例均采用 <script setup>&#xff0c;且包含 typescript 的基础用法 前言 BEM 是 css 常用的命名规范BEM &#xff1a;block(块)、 element(元素)、 modify(修饰符)以 namespace-block__element、namespace-block---modify 格式…

【es6】中的Generator

Generator 一、Generator 是什么&#xff1f;1.1 与普通函数写法不一样&#xff0c;有两个不同 二、Generator 使用2.1 书写方法 三、yield语句3.1 yield和return3.2 注意事项3.3 yield*语句3.4 yield*应用 四、next方法4.1参数 总结 一、Generator 是什么&#xff1f; Genera…

[Go版]算法通关村第十三关青铜——数字数学问题之统计问题、溢出问题、进制问题

这里写自定义目录标题 数字统计专题题目&#xff1a;数组元素积的符号思路分析&#xff1a;无需真计算&#xff0c;只需判断负数个数是奇是偶复杂度&#xff1a;时间复杂度 O ( n ) O(n) O(n)、空间复杂度 O ( 1 ) O(1) O(1)Go代码 题目&#xff1a;阶乘尾数0的个数思路分析&am…

字节实习半年小感悟

实习差不多半年了&#xff0c;快要答辩了。 从开始准备答辩到现在差不多四五十天的时间&#xff0c;虽然做需求和答辩交替进行&#xff0c;但PPT已经修改迭代六七个版本了。 以前总觉得这句话是一句非常感性非常搞笑的话&#xff1a;“xx的智慧如同天上的皓月&#xff0c;我不…

嵌入式设备的 Json 库基本使用

大家好&#xff0c;今天给介绍一款基于 C 语言的轻量级的 Json 库 – cJson。可用于资源受限的嵌入式设备中。 cJSON 是一个超轻巧&#xff0c;携带方便&#xff0c;单文件&#xff0c;简单的可以作为 ANSI-C 标准的 JSON 解析器。 cJSON 是一个开源项目&#xff0c;github 下…

【Linux取经路】探索进程状态之僵尸进程 | 孤儿进程

文章目录 一、进程状态概述1.1 运行状态详解1.2 阻塞状态详解1.3 挂起状态详解 二、具体的Linux操作系统中的进程状态2.1 Linux内核源代码2.2 查看进程状态2.3 D磁盘休眠状态(Disk sleep)2.4 T停止状态(stopped) 三、僵尸进程3.1 僵尸进程危害总结 四、孤儿进程五、结语 一、进…

【线性代数-3Blue1Brown】- 4 矩阵乘法与线性变换复合

飞书原文档&#xff1a; https://fvcs2dhq8qs.feishu.cn/docx/QRfNdiRAcoaSn0xLSIrcv1W0n9f?fromfrom_copylink

【教程】华南理工大学校园网登录抓包和协议模拟

每次手动登录特别麻烦&#xff0c;而且时不时断一下&#xff0c;因此搞个脚本让它定时监测、断开重连比较方便。这里不讲这个脚本怎么写&#xff0c;只记录一下登录时的抓包内容。 蒜了&#xff0c;直接上解析吧&#xff0c;也不复杂&#xff0c;相信大家一目了然。 目录 抓包…

Linux命令200例:tail用来显示文件的末尾内容(常用)

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;全栈领域新星创作者✌。CSDN专家博主&#xff0c;阿里云社区专家博主&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &…

Java开发面试题 | 2023

Java基础 接口和抽象类的区别&#xff1f;Java动态代理HashMap 底层实现及put元素的具体过程currenthashmap底层实现原理&#xff1f;map可以放null值吗&#xff0c;currenthashmap为什么不能放null值synchronze和reetrantlock区别&#xff1f;怎样停止一个运行中的线程&#…

WPS-RCE

版本&#xff1a; WPS Office 2023 个人版 < 11.1.0.12313 WPS Office 2019 企业版 < 11.8.2.12085 原理&#xff1a; Office 中的 WebExtension&#xff08;通常称为 Office 插件或 Office 应用程序&#xff09;是一种用于扩展 Microsoft Office 功能的技术。Office …

Nacos 无法注册服务

情况描述 Nacos服务搭建完成。 引入了Nacos的依赖。 <!-- SpringCloud Alibaba 服务管理 --> <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependen…

Linux之套接字UDP实现网络通信

Linux之套接字UDP实现网络通信 文章目录 Linux之套接字UDP实现网络通信1.引言2.具体实现2.1需要知道的套接字接口1.socket()2.bind()3.recvfrom()4.sendto() 2.2服务器端server.hpp2.3服务器端server.cc2.4客户端Client.cc 1.引言 ​ 套接字(Socket)是计算机网络中实现网络通信…

Java-类与对象(下)

访问限定符 类可以将数据以及封装数据的方法结合在一起&#xff0c;更符合人类对事物的认知&#xff0c;而访问权限用来控制方法或者字段能否直接在类外使用。 这里目前主要掌握private&#xff0c;default和public public&#xff1a;可以理解为一个人的外貌特征&#xff0c;…

金狮金狮鹏保宝点盾云等加密视频翻录录屏教程

这款软件采用独家方法特殊方式打开录屏工具&#xff0c;理论上通杀所有的检测进程的加密视频播放器的检测&#xff0c;不被检测。 使用方法很简单&#xff1a; 点击 打开录屏工具&#xff0c;就可以以特殊方式加载录屏工具。 然后就可以开始录屏了。 下载&#xff1a;spjm.lan…

在线HmacSHA1加密工具--在线获取哈希值又称摘要

具体请前往&#xff1a; 在线计算HmacSha1工具