4.3定时器框架(Timer Framework)
来源:互联网 发布:整理桌面的软件 编辑:程序博客网 时间:2024/05/21 18:48
经常需要为一个简短的执行(这任务只执行一次)安排时间列任务(一个单位的任务)或在制定的规则中重复执行。例如,你可能安排一个闹钟任务去运行一次(可能在早上唤醒这个任务),或安排一个夜间回滚任务在时间间隔中执行。对于任何一种任务,你能想要任务在特殊时间执行,或在将来或初始化的延迟时间执行。
你可以使用Thread和连接一个风格去创建一个框架来完成任务时间安排表。然后,Java1.3介绍一个更多方便和简单的可供选择的类,在java.util.Timer和java.util.TimerTask类中。
定时器让你的TimerTasks在将来某个时刻在后台执行,这就是我们所知的任务执行线程(task-execution thread)。定时任务可以为一次执行或定期执行重复执行。
Listing4-5展示了一个应用,证明一次执行一个定时任务。
执行上面的程序,你将会在2000毫秒后看到输出:alarm going off。
Listing4-6出现一个应用,证明一个定时的定时任务的重复执行。
Listing4-6 在大约一秒钟的时间间隔内显示当前毫秒值
Listing4-6描述一个应用,它默认主线程第一次实例一个TimerTask匿名子类,它重写run()方法,并输出当前时间(毫秒)。这个默认主线程在实例Timer和执行它的schedule()方法,将这个task作为第一个参数。第二个和第三个参数安排任务,在没有初始延迟时间而是每1000毫秒之后重复执行这个任务。
执行上面的代码,你将会看如下的结果。
你可以使用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毫秒之后重复执行这个任务。
执行上面的代码,你将会看如下的结果。
1496449834769149644983576814964498367681496449837768149644983876814964498397681496449840768····源码下载:git@github.com:owenwilliam/Thread.git
阅读全文
0 0
- 4.3定时器框架(Timer Framework)
- 自定义定时器(Timer)
- C#定时器(Timer)
- 定时器:.NET Framework类库中的Timer类比较(翻译)
- Webkit定时器(Timer)分析
- (七)RxJava定时器:timer
- 定时器Timer、线程(池)
- 4.3.1深度定时器(Timer in Depth)
- Timer 定时器
- TIMER 定时器
- timer 定时器
- timer 定时器
- timer定时器
- 定时器 Timer
- 定时器Timer
- timer定时器
- Timer 定时器
- Timer定时器
- Fragment强烈要求构造方法为空
- xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at
- MySQL存储引擎介绍
- 设计模式-命令模式 C++实现
- dyne-cm Nm互转
- 4.3定时器框架(Timer Framework)
- 高阶函数
- DA-TLC5615
- HTML总结——3
- 机器学习算法调优
- HDU 5778(暴力)
- SAM E54 Xplained Pro评估套件中文用户手册
- bootstrap popover弹框内容换行
- c++的头文件的一些问题