微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我们如何在Java中实现一个计时器线程?

我们如何在Java中实现一个计时器线程?

Timer类安排任务在给定时间运行一次或重复。它还可以作为守护线程在后台运行。要将 Timer 与守护线程关联起来,需要使用一个带有布尔值的构造函数。计时器以固定延迟固定速率安排任务。在固定延迟下,如果任何一个执行被系统GC延迟,则其他执行也会延迟,并且每次执行都会延迟对应于之前的执行。在固定速率下,如果任何执行被系统GC延迟,则连续发生2-3次执行以覆盖与第一次执行开始时间相对应的固定速率。 Timer 类提供了 cancel() 方法来取消计时器。当调用方法时,定时器终止。 Timer 类仅执行实现 TimerTask 的任务。

import java.util.*; public class TimerThreadTest { public static void main(String []args) { Task t1 = new Task("Task 1"); Task t2 = new Task("Task 2"); Timer t = new Timer(); t.schedule(t1, 10000); // executes for every 10 seconds t.schedule(t2, 1000, 2000); // executes for every 2 seconds } } class Task extends TimerTask { private String name; public Task(String name) { this.name = name; } public void run() { System.out.println("[" + new Date() + "] " + name + ": task executed!"); } }

输出

[Thu Aug 01 21:32:44 IST 2019] Task 2: task executed!
[Thu Aug 01 21:32:46 IST 2019] Task 2: task executed!
[Thu Aug 01 21:32:48 IST 2019] Task 2: task executed!
[Thu Aug 01 21:32:50 IST 2019] Task 2: task executed!
[Thu Aug 01 21:32:52 IST 2019] Task 2: task executed!
[Thu Aug 01 21:32:53 IST 2019] Task 1: task executed!
[Thu Aug 01 21:32:54 IST 2019] Task 2: task executed!
[Thu Aug 01 21:32:56 IST 2019] Task 2: task executed!
[Thu Aug 01 21:32:58 IST 2019] Task 2: task executed!
[Thu Aug 01 21:33:00 IST 2019] Task 2: task executed!

以上就是我们如何在Java中实现一个计时器线程?的详细内容,更多请关注编程之家其它相关文章

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐