该定时器类计划任务一次或多次给定的时间运行。它也可以作为后台程序线程在后台运行。要将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创建单线程计时器_我们如何在Java中实现计时器线程?相关推荐

  1. java创建mongdb数据库_【转发】Java使用MongoDB数据库进行增删改查

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_26584263/article/ ...

  2. java 调用其他构造函数_我如何在Java中调用另一个构造函数?

    是的,这是可能的: public class Foo { private int x; public Foo() { this(1); } public Foo(int x) { this.x = x ...

  3. 如何在MySQL中查询OS线程id(LWP)?

    如何在MySQL中查询OS线程id(LWP)? [root@LHRDB ~]# ps -Lf 16833 UID        PID  PPID   LWP  C NLWP STIME TTY   ...

  4. java安卓计时器_如何在android中设置计时器

    通过java.util.Timer和java.util.TimerTask使用计时器的标准Java方法在Android中运行良好,但是你应该知道这个方法创建了一个新线程. 您可以考虑使用非常方便的Ha ...

  5. java创建临时文件夹_如何在Java中创建一个临时目录/文件夹?

    有没有在Java应用程序内部创建临时目录的标准可靠方法? Java的问题数据库中有一个条目,注释中包含一些代码,但是我想知道在一个常用的库(Apache Commons等)中是否找到标准解决方案? # ...

  6. java创建access数据库_使用Java创建Access数据库文件(.mdb或.accdb)

    Jackcess 2.x的更新:现在使用DatabaseBuilder创建(或打开)数据库,因此要创建一个新的数据库文件,我们这样做 import java.io.File; import java. ...

  7. java控件数组_在C# WinForm程序中创建控件数组及相应的事件处理

    控件数组是VB提供的一个优秀的设计解决方案,它能很方便快捷的处理大批同类控件的响应和时间处理,但不知为什么在C#中这个优秀特性没有传承下来,甚为可惜,本文将要探讨就是如何在C# WinForm程序实现 ...

  8. java创建ee项目_项目头像–下一个Java EE功能?

    java创建ee项目 又是一年中的这个时候. 圣诞节假期快到了,Java Advent Calender不断填满. 今天要写我的惊喜帖子. 我是Markus ,也称为@myfear , 多年来我一直在 ...

  9. java多线程实战指南_学习笔记《Java多线程编程实战指南》二

    2.1线程属性 属性 属性类型及用途 只读属性 注意事项 编号(id) long型,标识不同线程 是 不适合用作唯一标识 名称(name) String型,区分不同线程 否 设置名称有助于代码调试和问 ...

最新文章

  1. 从零开始学_JavaScript_系列(14)——dojo(7)(饼图,BorderContainer,hashchange,弹窗)...
  2. 通过cordova将vue项目打包
  3. python可以在excel中应用吗,python怎样在excel中应用?-Python教程
  4. CSS+jQuery/JavaScript图片切换播放
  5. Cloud for Customer里UI5 JavaScript代码和UI designer里模型的对应关系
  6. LeetCode 152. 乘积最大子序列(DP)
  7. nodejs基于art-template模板引擎生成
  8. javascript嵌套函数和在函数内调用外部函数的区别
  9. oracle分区表官方指南
  10. 安装Bas的先决条件
  11. 64位Websphere MQ7在64位RHEL5下的安装及使用
  12. HTML中播放提示音
  13. Linux里面输入错误无法使用Backspace键
  14. java 打开word(docx)替换内容,并插入图片(盖章)
  15. 计算机机房通风,机房为什么要装通风系统?
  16. 下落(fall)【模拟】
  17. 一个关于Linux Bridge配置的吐嘈
  18. H5移动端 引入高德地图(获取经纬度与地址带搜索反选
  19. Communication error with Jack server
  20. C# textbox提示文字

热门文章

  1. Java Fork / Join进行并行编程
  2. Windows 如何在命令终端(CMD)使用命令来访问本地/远程的 Oracle 数据库呢?
  3. h5jumppage.php,h5使用webviewjsbridge跟原生交互,点击标签调用2次webview
  4. php输出分组,ThinkPHP 项目分组中的模板输出
  5. mysql注入漏洞语句,web安全之sql注入漏洞
  6. @cacheable 是否缓存成功_缓存策略:如何使用缓存来减少磁盘IO?
  7. dockerfile mysql例子_docker-compose 实用示例
  8. python 港股交易数据_GitHub - 116pythonZS/futuquant: 富途量化平台 API
  9. css中会计算的属性,2017年12月聚合文章--calc() ---一个会计算的css属性 | 码友网
  10. centos8配置本地光盘yum源_CentOS8 配置本地yum源的详细教程