4.3定时器框架(Timer Framework)
经常需要为一个简短的执行(这任务只执行一次)安排时间列任务(一个单位的任务)或在制定的规则中重复执行。例如,你可能安排一个闹钟任务去运行一次(可能在早上唤醒这个任务),或安排一个夜间回滚任务在时间间隔中执行。对于任何一种任务,你能想要任务在特殊时间执行,或在将来或初始化的延迟时间执行。
你可以使用Thread和连接一个风格去创建一个框架来完成任务时间安排表。然后,Java1.3介绍一个更多方便和简单的可供选择的类,在java.util.Timer和java.util.TimerTask类中。
定时器让你的TimerTasks在将来某个时刻在后台执行,这就是我们所知的任务执行线程(task-execution thread)。定时任务可以为一次执行或定期执行重复执行。
Listing4-5展示了一个应用,证明一次执行一个定时任务。
Listing4-5证明一个简短执行
package com.owen.thread.chapter4;import java.util.Timer;
import java.util.TimerTask;public class TimerDemo
{public static void main(String[] args){TimerTask task = new TimerTask(){@Overridepublic void run(){System.out.println("alarm going off");System.exit(0);}};Timer timer = new Timer();timer.schedule(task, 2000); // Execute one-shot timer task after// 2-second delay.}
}
Listing4-5描述一个应用,它在主线程第一次实例一个TimerTask的匿名子类,它重写了run()方法并输出一个警告信息,之后执行System.exit(0);因为这个应用要直到非守护线程结束了它才可以结束。这个主线程实例Timer和执行它的schedule()方法,将这个task作为第一个参数。第二个参数安排在一个初始延迟2000毫秒时间后一次执行任务。
执行上面的程序,你将会在2000毫秒后看到输出:alarm going off。
Listing4-6出现一个应用,证明一个定时的定时任务的重复执行。
Listing4-6 在大约一秒钟的时间间隔内显示当前毫秒值
package com.owen.thread.chapter4;import java.util.Timer;
import java.util.TimerTask;public class TimerDemo4_6
{public static void main(String[] args){TimerTask task = new TimerTask(){@Overridepublic void run(){System.out.println(System.currentTimeMillis());}};Timer timer = new Timer();timer.schedule(task, 0, 1000);}
}
Listing4-6描述一个应用,它默认主线程第一次实例一个TimerTask匿名子类,它重写run()方法,并输出当前时间(毫秒)。这个默认主线程在实例Timer和执行它的schedule()方法,将这个task作为第一个参数。第二个和第三个参数安排任务,在没有初始延迟时间而是每1000毫秒之后重复执行这个任务。
执行上面的代码,你将会看如下的结果。
1496449834769
1496449835768
1496449836768
1496449837768
1496449838768
1496449839768
1496449840768
····
源码下载:git@github.com:owenwilliam/Thread.git
4.3定时器框架(Timer Framework)相关推荐
- java 定时器框架_java定时器
java定时器 什么是Java定时器? Java 定时器就是在给定的间隔时间执行自己的任务; Java实现定时器有以下几种: 通过Timer来实现定时任务 Timer 是来自 java.util.Ti ...
- C#代码生成工具:文本模板初体验 使用T4批量修改实体框架(Entity Framework)的类名...
转自:http://www.cnblogs.com/huangcong/archive/2011/07/20/1931107.html 在之前的文本模板(T4)初体验中我们已经知道了T4的用处,下面就 ...
- java集合框架的结构_集合框架(Collections Framework)详解及代码示例
简介 集合和数组的区别: 数组存储基础数据类型,且每一个数组都只能存储一种数据类型的数据,空间不可变. 集合存储对象,一个集合中可以存储多种类型的对象.空间可变. 严格地说,集合是存储对象的引用,每个 ...
- 实体框架(Entity Framework)快速入门
实体 框架 (Entity Framework )简介 实体框架Entity Framework 是 ADO .NET 中的一组支持 开发 面向数据的软件应用程序的技术.是微软的一个ORM框架. OR ...
- wxpython应用实例_wxPython定时器wx.Timer简单应用实例
# -*- coding: utf-8 -*- ######################################################## ## 这是wxPython定时器wx. ...
- WinForm LED循环显示信息,使用定时器Threading.Timer
原文:WinForm LED循环显示信息,使用定时器Threading.Timer 这里用一个示例来演示timer如何使用. 示例:LED屏幕显示 描述:这个示例其实很简单,LED屏幕上显示3个信息: ...
- Binder框架在Framework层的C++中的使用
Binder框架在Framework层的C++中的使用 转自:http://blog.csdn.net/a345017062/article/details/6175519 关于Binder在C++层 ...
- Arduino ESP32 通过定时器(Timer)功能唤醒深度睡眠
Arduino ESP32 通过定时器(Timer)功能唤醒深度睡眠 通过定时器功能,设置5秒,时间到就唤醒深度睡眠 实例代码 /*通过定时器功能唤醒深度睡眠(设置为5秒) */#define uS_ ...
- 应用程序框架 Application Framework
转自:http://www.cnblogs.com/BigTall/archive/2007/12/06/985101.html 应用程序框架设计之前言 要做一个应用程序框架的念头Bigtall在几年 ...
- python timer怎么用_python定时器(Timer)用法简单实例
python定时器(Timer)用法简单实例 本文实例讲述了python定时器(Timer)用法.分享给大家供大家参考.具体如下: # encoding: UTF-8 import threading ...
最新文章
- 大二上学数据结构和操作系统_毕业后的工作比上学要重要得多。 这是数据。...
- 学python的好处-学习python有什么好处?python强大之处在哪?
- 一起谈.NET技术,浅析购物车的实现
- 【抽奖直播】今日16:30,云信特邀部长大人给你抽6s!
- Android蓝牙无法通信,android.bluetooth.BluetoothSocket无法连接
- 思考如何保证线程并行的数据安全性
- oracle删除本地文件权限,使用 UNIX 权限保护文件
- 现代程序设计 作业9 - 综合练习
- C#LeetCode刷题-二叉搜索树
- word 产生很多temp 不显示_word表格中文字显示到最下面的时候不自动换页-解决办法...
- xp系统wep服务器,iis 6.0 完整安装包 适用xp
- 断层约束的等值线追踪
- ASP.NET 安全认证(三)
- 大数据hive篇--同比环比
- 第019讲:函数:我的地盘听我的 | 课后测试题及答案(小甲鱼)
- CCLE(Cancer Cell Line Encyclopedia)数据库使用
- 如何制作一个完美的全屏视频H5
- 认识你7年后终于领证了 2019-09-16
- 博客中的动态图片如何制作
- phpcms api接口开发
热门文章
- 690 - Pipeline Scheduling (DFS + 状态压缩 + 剪枝)
- [cocos2dx笔记015]关于cocos2dx Button三种状态说明
- WLAN安全问题详解
- 网络安全——局域网内网络攻击手段(MAC地址攻击、ARP攻击、DHCP攻击)
- PTA(BasicLevel)-1009 说反话
- Django---简单from表单提交
- java在线聊天项目1.0版 异常处理——开启多个客户端,关闭一个客户端后,在其他客户端中再发出信息会出现异常的处理...
- 创建Dockerfile,构建jdk+tomcat环境
- ko.js循环绑定值问题(工作遇见)
- Log42j 源代码分析:日志回滚