我的编程空间,编程开发者的网络收藏夹
学习永远不晚

浅谈java定时器的发展历程

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

浅谈java定时器的发展历程

在开发中,我们经常需要一些周期性的操作,例如每隔几分钟就进行某一项操作。这时候我们就要去设置个定时器,Java中最方便、最高效的实现方式是用java.util.Timer工具类,再通过调度java.util.TimerTask任务。

Timer是一种工具,线程用其安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。实际上是个线程,定时调度所拥有的TimerTasks。

TimerTask是一个抽象类,它的子类由Timer安排为一次执行或重复执行的任务。实际上就是一个拥有run方法的类,需要定时执行的代码放到run方法体内。

java在jdk1.3中推出了定时器类Timer,而后在jdk1.5后由DouLea从新开发出了支持多线程的ScheduleThreadPoolExecutor,从后者的表现来看,可以考虑完全替代Timer了。

Timer与ScheduleThreadPoolExecutor对比:

Timer始于jdk1.3,其原理是利用一个TimerTask数组当作队列,将所有定时任务添加到此队列里面去。然后启动一个线程,当队列为空时,此线程会阻塞,当队列里面有数据时,线程会去除一个TimerTask来判断

是否到时间需要运行此任务,如果运行时间小于或等于当前时间时则开始运行任务。由于其单线程的本质,所以会带来几个问题(详细代码在后面):

第一,当我们添加到定时器中的任务比较耗时时,由于此定时器是单线程顺序执行定时器任务,所以会影响后续任务的按时执行。

Java代码

//问题一示例: m_timer.scheduleAtFixedRate(new TaskUseLongTime(), 1000, 5000); m_timer.scheduleAtFixedRate(new TaskNormal(), 5000, 3000);  运行结果: 14:44:29: timer is sleeping 10 seconds 14:44:39: Task Normal executed 14:44:39: timer is sleeping 10 seconds 14:44:49: Task Normal executed 14:44:49: Task Normal executed 14:44:49: timer is sleeping 10 seconds  结果分析:TaskNormal任务无法保证3秒运行一次,其只能等待TaskUseLongTime运行结束后才可以。 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

浅谈java定时器的发展历程

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

浅谈java定时器的发展历程

在开发中,我们经常需要一些周期性的操作,例如每隔几分钟就进行某一项操作。这时候我们就要去设置个定时器,Java中最方便、最高效的实现方式是用java.util.Timer工具类,再通过调度java.util.TimerTask任务。Time
2023-05-30

浅谈Node.js中的定时器

Node.js中定时器的实现 上一篇博文提到,在Node中timer并不是通过新开线程来实现的,而是直接在event loop中完成。下面通过几个JavaScript的定时器示例以及Node相关源码来分析在Node中,timer功能到底是怎
2022-06-04

云服务器的发展历程

云服务器(CloudDocker)是一种基于云计算技术的服务器,它可以提供高性能、高扩展性和可管理性,适合大规模的应用和服务,如互联网服务、游戏开发、企业应用等。以下是云服务器的发展历程:20世纪90年代中期,互联网和电子商务的需求急剧增长,而传统的服务器无法应对这种需求,因此IBM的AIX系统被开发出来。2001年,微软推出了Xen系统,并在2003年将其更名为DatacenterSe
2023-10-26

如何理解Java 8到Java 15的发展历程

本篇内容介绍了“如何理解Java 8到Java 15的发展历程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!函数式编程(Java 8)在Ja
2023-06-15

怎么浅谈Java并发编程中的Java内存模型

这篇文章的内容主要围绕怎么浅谈Java并发编程中的Java内存模型进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!物理计算机并发问题在介绍Java内存
2023-06-17

云服务器的发展历程简述

云服务器(CloudServer)是一种基于互联网的服务器,它可以通过互联网连接到客户,提供高速的网络访问和托管服务。云服务器提供的服务涵盖了数据存储、计算、应用程序开发、网络安全、管理等诸多领域。云服务器的发展可以追溯到20世纪70年代,当时互联网开始崛起。随着时间的推移,一些云计算供应商开始提供类似于传统服务器的服务,如IBMCloudLake、OracleOpenCloud等。到了20世
2023-10-26

深入浅析Java中的定时器

今天就跟大家聊聊有关深入浅析Java中的定时器,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。定时器问题  定时器属于基本的基础组件,不管是用户空间的程序开发,还是内核空间的程序开发,
2023-05-31

云服务器的发展历程是什么

云服务器(CloudServer)的发展历程可以追溯到2009年,当时微软推出了AmazonWebServices(AWS)。在AWS之后,云服务市场迎来了爆发式的增长,包括AmazonWebServices、GoogleCloud、AlibabaCloud、阿里云、腾讯云等巨头的相继涌入,市场规模也迅速扩大。在2015年之前,云计算市场主要由私有云厂商主导,随着云计算市场的快速发展,更多的企
2023-10-26

云服务器的发展历程是什么呢

云服务器(CloudServer)的发展历程可以追溯到2009年,当时微软推出了AmazonWebServices(AWS)。自那以后,云服务在全球范围内得到了广泛的使用和普及,包括AmazonWebServices、GoogleCloud、Salesforce等巨头。随着时间的推移,云计算市场也经历了多次演变。最初,云计算是作为一种新的技术出现的,它的概念和实践都非常原始。随着时间的推移,一些巨头公司逐渐成长为市场领袖,例如亚马逊、AWS、微软、IBM等等。目前,许...
2023-10-27

云服务器的发展历程简述100字

云服务器是一种基于互联网的服务器技术,它提供了一种虚拟化的环境,使得用户在本地的物理服务器上运行自己的应用程序。早在1990年代中期,就已经出现了第一代云服务器产品,包括GreenPlum、IronPort等知名产品。2010年代以后,云服务器进入快速发展阶段,包括AmazonWebServices、GoogleAppEngine等厂商推出了许多新的云服务,如GoogleAppEngine、AWSIronPort等。此外,随着人工智能和大数据技术的不断发展,云服务器也变...
2023-10-27

云服务器的发展历程是什么样的

云服务器(CloudServer)是一种基于互联网的服务器,它可以通过互联网连接到客户。它通常采用分布式架构,可以让多个服务在一个计算机上同时运行。云服务器提供了一种高性能、高可扩展性和低成本的服务,可以使得企业、开发者、小型企业等可以方便地使用互联网访问其服务器,从而实现快速的应用开发、部署、测试和维护。云服务器的发展历程可以分为以下几个阶段:第一代云服务器:早期的云服务器提供基本的计算能力,但需要购买昂贵的硬件...
2023-10-27

亚马逊的时间:从创立到现在的发展历程

1.亚马逊的起源亚马逊公司成立于1994年,由杰夫·贝索斯(JeffBezos)创立。当时,他在纽约市的一家投资银行工作,但他对互联网的潜力充满了信心。他决定辞职,创立了亚马逊公司,以在线销售图书为主要业务。2.亚马逊的扩张亚马逊公司在成立初期就取得了巨大的成功。它不仅成为了在线图书销售的领导者,还开始扩展到其他领域,如音乐、电影、电子产品等。亚马逊还推出了自己的电子书阅读器Kindle,这一产品在市场上取得了巨大的...
2023-10-27

云服务器的发展历程简述怎么写

云服务器(CloudDocker)是一种基于云计算技术的服务器虚拟化平台,它提供了类似于虚拟机(VM)的功能,用户可以像使用普通服务器一样使用云服务器。下面是云服务器的发展历程简述:20世纪80年代:第一台云服务器诞生于英国的数据中心。由于当时的服务器技术还不成熟,云服务器在当时是一个相对昂贵的选择。20世纪90年代:随着技术的发展,云服务器已经逐渐成为一种流行的服务类型。云服务器提供了更快的处理速度和更高的灵活性,使得用户可...
2023-10-27

云服务器的发展历程简述怎么写的

发展阶段:最初的云服务器是基于集群计算(ClusterComputing)技术的,其特点是资源共享、快速部署、按需使用、可扩展性强。随着云计算技术的不断发展,云服务器逐渐演变为基于云计算平台的分布式计算架构,用户可以根据自己的需求来分配计算和存储资源,并实现高效的资源管理和服务。分类和分级:云服务器可以分为公共云、私有云和混合云三种类型。公共云是指由第三方提供的云计算平台,如亚马逊AWS、阿里云等,用户可以通过网...
2023-10-27

云服务器的发展历程简述怎么写好

首先,云服务器的发展历程可以从最初的硬件服务器发展到了现在的云计算基础架构,这也使得云服务器成为了当今企业和个人的基础设施之一。在过去的几年中,云服务器的市场规模不断扩大,各种新的云计算服务不断涌现,如AWS、阿里云、腾讯云等。这些云服务提供商不断推出新的技术和服务,如弹性计算、分布式存储、云安全等,为用户提供了更加优
云服务器的发展历程简述怎么写好
2023-10-28

云服务器的发展历程简述100字内容

云服务器的发展历程可以追溯到20世纪90年代,当时互联网开始普及,企业需要更多的计算资源来支持其业务。2006年,亚马逊推出了第一个云计算服务——AmazonWebServices(AWS),这标志着云计算的开始。随着技术的不断发展,云服务器的功能和性能不断提升,成为了企业IT基础设施的重要组成部分。目前,云服务器已经成为了企业IT基础设施的主流选择,为企业提供了高效、灵活、可靠的计算资源。
2023-10-27

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录