分享好友 最新动态首页 最新动态分类 切换频道
海外推广品牌/揭阳seo推广公司
2024-12-27 11:26

Timer,一般用来做延时任务或者循环定时执行的任务。

例如:指定在一小时后闹钟就响了,或者每天6:00响,这些都是延时任务或者是定时循环的任务

使用Timer的时候,必须要有一个TimerTask去执行任务,这是一个线程,它实现了Runnable接口,run方法里面就是线程需要做的,也是我们自己定义的。

下面来看代码

上面几行代码只是定义了一个Date和一个Timer,以及一个TimerTask

下面来看看使用

代码前两行,只接收两个参数,分别是TimerTask和时间,这两种使用方式都是只执行一次,不是循环执行的。

第一行:在指定时间的时候去执行传递进去的TimerTask,不循环执行

第二行:延时一段时间后执行TimerTask,这里指的是延时1秒钟后执行TimerTask

中间两行涉及到了循环执行,比前两行多传递了一个参数,也就是间隔时间。间隔一段时间执行一次TimerTask

第三行:一秒后执行TimerTask,并且每隔1秒执行一次(第二个参数是延时,第三个参数是间隔时间

第四行:在指定的时间执行TimerTask,并且开始每隔1秒执行一次

接下来重点来了,后面两个方法。后面两个方法,看起来就和前面来两个方法就不一样了,哈哈。

究竟怎么样,往下看。

第五行:其实和第三行是一样的,都是延时执行,然后每次间隔一定的时间执行一次TimerTask

第六行:这行和第四行就有区别了,相同的是:都是在指定的时间开始执行,然后每隔一段时间执行。

不同的是:schedule在执行的时候,如果Date过了,也就是Date是小于现在时间,那么会立即执行一次,然后每隔一段时间执行

scheduleAtFixedRate在执行的时候,如果Date过了。还会执行,然后才是每隔一段时间执行。

看代码执行的结果

这个是schedule的执行结果,你会发现,如果这个时间过了,会直接执行,然后开始每隔一秒后执行。

下面来看看scheduleAtFixedRate的执行结果。

这是scheduleAtFixedRate的执行结果。这里是每隔5分钟执行一次,我这个是在大概17:08分执行的,我这里指定的时间是:16:30

从16:30开始算,每隔5分钟,也就是16:30 16:35 16:40 16:45 16:50 16:55 17:00 17:05分别执行一次,算下来刚好是8次,这就对了,所以我们刚运行的时候一次性执行了8次,然后打印结果中,最后一次是在17:10的时候执行的。你就会发现,其实最后一次和倒数第二次的间隔不是5分钟,而是刚好是17:10的当前毫秒数。

这就是两者间的差别了,schedule是直接执行,并且以此刻为开始时间,开始执行,并且过去的不再执行。而scheduleAtFixedRate是判断时间,如果过了,那么就算出之前执行的次数,依次执行,然后等待下一次执行时间的到来。下一次就是17:10,而不是17:13(17:08的后5分钟)。

这就是两者最大的差别。

最后来看看第五行和第三行有什么区别,其实没什么区别,来看源码

看这两个方法的源码,几乎一样,就在于最后一个参数的传递。一个传递的是 -period 一个传递的是 period

接下来继续看。

我们先来看看代码中的第一个红框中的第一行代码。里面计算的是绝对值,和正负数没关系吧!然后第二个红框,直接赋值,就没有下文了。

接下来继续看看TimerTask里面的代码

这里只涉及到了一个同步,最后return的时候,判断一下,如果延时时间是小于0的话就加,大于0就减,那没什么区别嘛,加一个负数和减一个正数有啥区别,所以得出结论,没区别。

看到这里我都怀疑我学了多年的数学是否过关了。想当年每次都是数一数二的数学成绩,看到这里已经懵逼了,到最后都是一样的,这里我就搞不懂了,为什么一个是传负,一个是传正呢

最新文章
羊小咩在“双11”中展现智能化魅力,助力消费者享受美好生活
随着今年“双11”电商购物节的火热开启,各平台销售数据再创新高,消费热情持续升温。从京东、天猫到抖音电商,各大电商平台纷纷亮出亮眼成绩单,不仅展现了中国消费市场的强劲活力,更揭示了消费趋势的深刻变革。羊小咩作为新兴的消费服务
Mysql用户密码设置修改和权限分配
转载地址:http://www.cnblogs.com/top5/archive/2010/09/14/1825571.html, 复制记录下:一、更改密码  第一种方式:  1、更改之前root没有密码的情况    c:mysqlbinmysqladmin -u root password "yo
如何增加已上架宝贝销售规格
一、如何增加已上架宝贝销售规格?要增加已上架宝贝的销售规格,可以按照以下步骤进行:登录淘宝卖家平台:打开淘宝网站,点击页面右上方的“卖家中心”,选择“卖家后台”,输入账号密码登录。选择需要添加规格的商品:在卖家后台首页,点
怎么使用AI写作工具批量写作?批量AI智能写作的方法
随着科技的不断发展,人工智能(AI)技术在各个领域都有了广泛的应用,其中之一就是智能写作。对于需要大量文本创作的用户来说,批量AI智能写作成为提高效率的一项重要工具。本文将专心分享批量AI智能写作的
福昕PDF编辑器 13.3.624.26728
福昕pdf编辑器个人版是一款便捷实用、功能丰富的文档编辑工具,它拥有启动速度快、浏览迅速、内存占用小等多个优点,不仅可以浏览各种pdf文件,还能编辑pdf文档的页面内容,进行插入、修改、移除、旋转、复制等操作,使用起来非常的方便。
适当使用关键词,避免堆砌,优化独立站的SEO
在当今数字化时代,拥有一个独立网站已成为许多企业和个人展现自我的重要途径。然而,创建一个成功的网站仅仅是第一步,如何提升其可见性,尤其是在搜索引擎中的排名,显得尤为重要。这就是搜索引擎优化(SEO)的魅力所在。小编今天将为大
网购的口气清新剂竟是电子烟?电子烟乱象难禁,未成年人成最大受害者
未成年的儿子在正规网购平台购买了一款名为“口腔喷雾清新剂”的产品,吸食后直呼“味道真甜”,并吐出香精味的烟雾。陈女士仔细检查才发现,这竟是一款伪装成清新剂的电子烟。近年来,电子烟因其“低门槛”和隐蔽性成为市场乱象的重灾区。
许昌网站排名优化软件,提升网站排名的利器,许昌正规网站优化公司
许昌网站排名优化软件是提升网站排名的利器,通过专业的优化技巧和策略,帮助网站在搜索引擎中获得更好的排名。许昌正规网站优化公司则提供全方位的网站优化服务,包括关键词研究、内容优化、链接建设等,确保网站在搜索引擎中获得更高的曝
小米Note 3与小米6全面对比:升级澎湃OS后的差异体验(2024版)
从价格维度来看,小米Note3和小米6的价格水平大体相当。但当我们深入探讨其硬件配置时,便会发现两者之间存在诸多差异。在硬件核心方面,小米Note3和小米6主要区别在于屏幕大小、处理器、前置摄像头、电池容量以及人脸解锁功能。简单来说,
如何刷机vivo手机?最新的刷机教程分享
刷机是改变手机系统的一种方法,可以给手机带来更多的功能和自定义选项。如果你拥有一部vivo手机,想要尝试刷机,下面是一个简单的教程,帮助你完成这个过程。在刷机之前,务必备份好手机中的重要数据,包括联系人、短信、照片等。刷机过程
相关文章
推荐文章
发表评论
0评