Timer 的简单使用
展开全部
Timer 的简单使用: 按照我的理解,Timer 相当于一个线程任务调度器,new 一个 Timer 并且设置它的 schedule 方法可以很方便地决定要执行什么任务,延迟多久才执行,每隔多长时间后再一次执行。
如何设置 Timer对象的 schedule 方法呢?
先来看到 schedule 方法的签名:
可以看到 schedule 方法的参数列表中:
delay 和 period 的中文意思分别是 “延迟” 和 “周期”。而对于一个定时任务来讲,“延迟”和“周期”是该定时任务的属性。决定了一个定时任务需要延迟多少毫秒(该参数的单位)开始执行,以及循环执行定时任务的周期大小。
第一个参数对于初学者来讲就略显复杂了。我自己也是刚刚接触。TimerTask 本身是一个实现了Runnable接口的抽象类,有线程知识的同学都很清楚,在Runnable接口中,声明了一个run()方法。这个方法是线程的执行任务单元。当一个线程启动之后,要完成的工作就是去执行run()方法。
而TimerTask抽象类实现了Runnable接口,所以TimerTask也存在 run() 方法。 run()方法是线程要执行的任务,所以将这个任务交给定时器的schedule方法。
然后这个定时器在底层会在延迟时间结束后,启动这个线程任务, 并且周期性循环。
上面程序中,Thread.sleep(2000)的存在是为了延长测试方法的生命周期,使得定时器的效果得以体现,即每隔1秒往控制台输出1条信息。
(end)
如何设置 Timer对象的 schedule 方法呢?
先来看到 schedule 方法的签名:
可以看到 schedule 方法的参数列表中:
delay 和 period 的中文意思分别是 “延迟” 和 “周期”。而对于一个定时任务来讲,“延迟”和“周期”是该定时任务的属性。决定了一个定时任务需要延迟多少毫秒(该参数的单位)开始执行,以及循环执行定时任务的周期大小。
第一个参数对于初学者来讲就略显复杂了。我自己也是刚刚接触。TimerTask 本身是一个实现了Runnable接口的抽象类,有线程知识的同学都很清楚,在Runnable接口中,声明了一个run()方法。这个方法是线程的执行任务单元。当一个线程启动之后,要完成的工作就是去执行run()方法。
而TimerTask抽象类实现了Runnable接口,所以TimerTask也存在 run() 方法。 run()方法是线程要执行的任务,所以将这个任务交给定时器的schedule方法。
然后这个定时器在底层会在延迟时间结束后,启动这个线程任务, 并且周期性循环。
上面程序中,Thread.sleep(2000)的存在是为了延长测试方法的生命周期,使得定时器的效果得以体现,即每隔1秒往控制台输出1条信息。
(end)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
单片机,即单片微控制器,也称为单片微型计算机,是将中央处理器(CPU)、存储器(ROM,RAM)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询