分享好友 最新动态首页 最新动态分类 切换频道
海外推广品牌/揭阳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就减,那没什么区别嘛,加一个负数和减一个正数有啥区别,所以得出结论,没区别。

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

最新文章
苏州百度竞价托管代运营服务收费标准及行业平均价格_苏州百度推广代运营
在当今数字化营销的时代,竞价托管代运营服务已成为许多企业提升在线广告效果的重要选择。然而,其收费标准因多种因素而异,了解行业平均价格对于企业做出明智的决策至关重要。苏州百度竞价托管代运营服务收费标准及行业平均价格_苏州百度
用AI绘画神器轻松生成超逼真美女写真!
限时免费,点击体验最近超火的AI生图神器,坐拥3000美女的大男主就是你! https://ai.sohu.com/pc/generate/textToImg?_trans_=030001_yljdaimn 在这个数码科技飞速发展的时代,像素与画笔早已不再是艺术创作的唯一条件。可想而知,AI绘画
网站建设免费书/seo优化方案报价
转载 2016年02月24日 13:58:30 5605 博客分类: 性能及调优LinuxJava   对于jps较熟悉可以直接查看第二部分的分析   1、jps的作用 jps类似linux的ps命令,不同的是ps是用来显示进程,而jps只显示java进程,准
游戏行业迎来AI变革:大模型助力创意与效率双提升
2024年注定是一个充满机遇与挑战的年份。在大模型技术不断成熟的背景下,游戏行业正经历着前所未有的变革。这一轮科技创新,不仅仅是为了降本增效,更多的是为了探索创意的新边界。根据南方财经全媒体记者吴立洋在北京的报道,人工智能(AI
成都微博热搜榜怎么做
成都微博热搜榜怎么做一:话题策划-微博热搜榜根据客户需求,策划出符合平台规则的创意,提高上榜率二:微博热搜执行方案成都微博热搜榜话题营销流程:1.需要客户提供项目背景、核心诉求、产品资料(主要卖点)等资料2.根据客户需求策划冲榜
用AI生成美女写真!简单易用的教程与工具推荐
DALL-E:这一AI工具由OpenAI开发,以其令人惊艳的图像生成能力而闻名。用户只需提供描述,系统便能生成多种样式的美女图片,效果多样且极具艺术感。然而,生成高质量的图像需要经过多次尝试,用户可能需耐心调整描述才能达到理想效果。Midj
【Excel视频教学】rank函数制作成绩排名
【推荐阅读】大家好,本视频主要讲解利用rank函数制作成绩排名首先我们来看一下案例,在本案例中有253条数据需要对这253条数据进行排名,在排名制作过程中需要注意的是成绩并列的情况,比如说两个80分为并列第二名,那下一位就是第四名。好
淘宝店铺怎么做老顾客营销?
1、结合买家心理和收货期待,玩好宣传单在日常生活中,当我们收到宣传单可能不太会多关注,反而网上购物收到的货会比较关注,因为会对自己买的东西抱有强烈的期待,正是由于这份收货心理,关于买的产品,一些相关的传单会有很大几率去看。
Python 人狗大 CSDN:一个 Python 开发者的学习交流社区
Python 人狗大 CSDN 社区汇聚了来自世界各地的 Python 爱好者和专业开发者。无论是初出茅庐的新手,还是经验丰富的高手,都能在这里找到自己的位置。对于新手来说,这里是他们开启 Python 编程之旅的起点。丰富的入门教程、详细的基础知识
百度蜘蛛池效果:揭秘蜘蛛池推广词,如何高效利用蜘蛛池提升关键词排名
百度蜘蛛池推广词助力关键词排名提升,通过高效利用蜘蛛池,可迅速提升网站权重,优化搜索引擎排名。本文揭秘蜘蛛池推广词的使用方法,教你如何发挥蜘蛛池最大效用,实现高效关键词推广。本文目录导读:什么是蜘蛛池推广词蜘蛛池推广词的特
相关文章
推荐文章
发表评论
0评