java创建单线程计时器_我们如何在Java中实现计时器线程?

该定时器类计划任务一次或多次给定的时间运行。它也可以作为后台程序线程在后台运行。要将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!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值