本博文只是简单介绍一下Timer的使用方法。适用于初学者进行参考,希望大家多多指点。废话不多说,直接上正题。
1、了解一下Timer类提供的方法
介绍几个常用的方法:
cancel() 终止此计时器,丢弃所有当前已安排的任务。
schedule(TimerTask task, long delay, long period) 安排指定的任务从指定的延迟后开始进行重复的固定延迟执行。
schedule(TimerTask task, long delay) 安排在指定延迟后执行指定的任务。(这个只执行一次,延时执行后,不再执行)
scheduleAtFixedRate(TimerTask task, long delay, long period) 安排指定的任务在指定的延迟后开始进行重复的固定速率执行。
2、Timer示例
本示例使用的是jdk1.6.
首先我编写了一个定时任务的工具类,提供了开始定时任务和取消定时任务。
package com.bao.timerUtil;
import java.util.Timer;
import java.util.TimerTask;
/**
* 定时任务工具类
* @author lanJ
*
*/
public class TimerUtil {
//定时执行时间
private static long TIME = 1000*6;
private Timer timer = null; //定时类
/**
* 启动定时任务
* @param timerTask
*/
public void startTimer(TimerTask timerTask) {
if(timer == null) {
timer = new Timer();
}
timer.schedule(timerTask, TIME, TIME);
}
/**
* 延时20秒启动定时任务
* @param timerTask
*/
public void startAtFixedTimer(TimerTask timerTask) {
if(timer == null) {
timer = new Timer();
}
timer.scheduleAtFixedRate(timerTask,1000*20,TIME);
}
/**
* 停止定时任务
*/
public void stopTimer() {
timer.cancel();
}
}
然后,编写一个自己的任务类。
package com.bao.timerTask;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimerTask;
/**
* 我的任务 说明:定时任务需要集成java.util.TimerTask类,并且重写run方法. 把你想要在定时任务中所做的事写在run方法中.
* @author lanJ
*
*/
public class MyTask extends TimerTask {
private String name;
public MyTask(String name) {
this.name = name;
}
@Override
public void run() {
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + " Hello," + this.name);
}
}
最后,有个测试类。
package com.bao.main;
import com.bao.timerTask.MyTask;
import com.bao.timerUtil.TimerUtil;
public class TestMain {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
TimerUtil timerUtil = new TimerUtil();
timerUtil.startTimer(new MyTask("lanJ"));
timerUtil.startAtFixedTimer(new MyTask("bao"));
}
}
运行结果:
2012-09-10 10:01:24 Hello,lanJ
2012-09-10 10:01:30 Hello,lanJ
2012-09-10 10:01:36 Hello,lanJ
2012-09-10 10:01:38 Hello,bao
2012-09-10 10:01:42 Hello,lanJ
2012-09-10 10:01:44 Hello,bao
2012-09-10 10:01:48 Hello,lanJ
2012-09-10 10:01:50 Hello,bao
2012-09-10 10:01:54 Hello,lanJ
2012-09-10 10:01:56 Hello,bao
通过结果可以看出bao这个定时任务是延时了20秒才执行的。
分享到:
相关推荐
java_Timer定时器实例_Spring实例
java Timer定时器实例 Spring实例.doc java Timer定时器实例 Spring实例.doc
java定时器,timer类操作详解 java定时器,timer类操作详解
java 定时器(Timer) java 定时器(Timer) java 定时器(Timer)
本工程为java工程,使用MyEclipse新建。
自己写的java timer控件定时器详解(附详细代码),已通过调试并运行。
Java定时器Timer简述.pdf
NULL 博文链接:https://675990021.iteye.com/blog/2265945
timer示例demo(java)
java多线程定时器
一个很简单的java定时器,很适合初学者呢,希望能够给你一点的提示哦
在本篇文章里小编给大家整理的是关于Java线程Timer定时器用法详细总结内容,需要的朋友们学习下吧。
Timer java定时器
Java_Web定时器使用
在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等。 对于这样的操作最方便、高效的实现方式就是使用java.util.Timer工具类。
本文首先设计一个单次定时器Timer+TimerTask,然后再次基础上设计一个循环定时器。
java定时器说明与应用
java中定时器timer类的实现和源代码