线程学习笔记(八)-定时器(Timer)
来源:互联网 发布:程序员一般转行做什么 编辑:程序博客网 时间:2024/06/15 10:57
在开发过程中往往会用Timer类来定时执行任务,如每天晚上定时执行批量服务。本实例介绍如何定时执行指定的任务,包括在指定的时间点执行任务、每隔某个时间段重复执行任务等等。类java.util.Timer和java.util.Timertask可以实现定时执行任务。Timer类的schedule系列方法能够在指定的时间执行TimerTask类型的任务。
package core;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Timer;import java.util.TimerTask;class WorkTask extends TimerTask{private int taskID=0;//任务编号public DateFormat dateFormat=new SimpleDateFormat("YYYY-MM-dd HH:mm:ss SSS");public WorkTask(int id){//带参数构造方法进行初始化this.taskID=id;}@Overridepublic void run() {System.out.println("执行工作任务-"+this.taskID+", 执行时间-"+dateFormat.format(new Date().getTime()));}//继承时间任务类}public class TextThreadTimer {public static void main(String[] args) {Timer timer=new Timer();TimerTask task1=new WorkTask(1);timer.schedule(task1, 100);//0.1秒后执行任务TimerTask task2=new WorkTask(2);timer.schedule(task2, 300, 1000);//0.3秒后执行任务并每隔1秒执行一次TimerTask task3=new WorkTask(3);Date date=new Date(System.currentTimeMillis()+1000);timer.schedule(task3, date);try {Thread.sleep(5000);} catch (InterruptedException e) {System.out.println("出现错误: "+e.getMessage());}timer.cancel();System.out.println("定时器取消...");}}
源程序解读
(1)WorkTask类继承TimerTask类实现定时器执行指定任务,TimerTask类提供了一个抽象方法run(),所有需要用定时器执行的任务类都必须继承TimerTask并实现run()方法。
(2)Timer类的schedule()方法用于调度任务。schedule(任务,时间)方法表示在过该时间后执行任务,schedule(任务,时间1,时间2)方法表示在过时间1后执行任务并以后每隔时间2执行一次任务,schedule(任务,日期)方法表示在过该日期后执行任务。
阅读全文
0 0
- 线程学习笔记(八)-定时器(Timer)
- QtQuick学习笔记之QML定时器Timer
- Java线程-Timer定时器
- Timer TimerTask 定时器线程
- 【JavaSE学习笔记】多线程02_Lock,死锁,等待唤醒机制,线程组和线程池,Timer定时器
- 西门子PLC学习笔记八-(定时器)
- 学习笔记八之线程
- 学习笔记八之线程
- JAVASE总结--线程定时器Timer
- 定时器Timer、线程(池)
- 【08】 Boost库学习笔记之定时器(Timer)
- MFC 线程学习笔记之定时器
- ACE学习之定时器(Timer)
- ACE学习之定时器(Timer)
- ACE学习之定时器(Timer)
- JAVA定时器 (Timer TimerTask)学习
- 学习一下定时器timer+handler
- 线程同步通信与定时器Timer使用
- xml动画
- 移动APP云测试平台测评分析
- Hive分析窗口函数(三) LAG,LEAD,FIRST_VALUE,LAST_VALUE
- java网络编程实现两端聊天
- 极光推送Jpush
- 线程学习笔记(八)-定时器(Timer)
- loadrunner性能测试之基准测试,并发测试,综合场景测试简易步骤
- Linux常用指令
- 【iOS干货】? 初识 Socket 网络通信
- scala处理json文件
- 白话Https
- L2-011. 玩转二叉树-PAT团体程序设计天梯赛GPLT
- FTPrep, 34 Search for a range
- java使用neo4j图数据库—centos7.1