Java中Timer,TimerTask的使用

导读:
1 使用背景:
在nea的开发过程中,性能数据上报时候,需要在接受数据的时候,定时给RNC网元发送ACK消息(网管在收到数据帧后的T时间内必须回送确认给网元。该功能是确保在发送给网管的数据帧不足V个的情况下,网元仍然能够收到确认。)
所以需要在定时器未启动的情况下,接受到数据后启动定时器,然后在定时器到时的情况下发送ACK,停止定时器。

在java的util包中提供了定时器的类Timer TimerTask 等。
Timer
Timer()
创建一个新计时器。
Timer(boolean isDaemon)
创建一个新计时器,可以指定其相关的线程作为守护程序运行。
Timer(String name)
创建一个新计时器,其相关的线程具有指定的名称。
Timer(String name, boolean isDaemon)
创建一个新计时器,其相关的线程具有指定的名称,并且可以指定作为守护程序运行。

void cancel()
终止此计时器,丢弃所有当前已安排的任务。
int purge()
从此计时器的任务队列中移除所有已取消的任务。
void schedule(TimerTask task, Date time)
安排在指定的时间执行指定的任务。
void schedule(TimerTask task, Date firstTime, long period)
安排指定的任务在指定的时间开始进行重复的固定延迟执行。
void schedule(TimerTask task, long delay)
安排在指定延迟后执行指定的任务。
void schedule(TimerTask task, long delay, long period)
安排指定的任务从指定的延迟后开始进行重复的固定延迟执行。
void scheduleAtFixedRate(TimerTask task, Date firstTime, long period)
安排指定的任务在指定的时间开始进行重复的固定速率执行。
void scheduleAtFixedRate(TimerTask task, long delay, long period)
安排指定的任务在指定的延迟后开始进行重复的固定速率执行。


TimerTask是一个抽象类,由Timer 安排为一次执行或重复执行的任务。
boolean cancel() 取消此计时器任务。
abstract void run() 此计时器任务要执行的操作。
package nea.timer;

import java.util.Timer;
import java.util.TimerTask;


/**
* 定时器,执行定时任务
* @author liuyuan
* @version 0.1
*/
public class TimerFactory {

private Timer time = null;

private static TimerFactory factory = null;

private TimerTask task = null;

public TimerFactory(){
time = new Timer();
}

public static TimerFactory getInstance() {
if (null == factory) {
factory = new TimerFactory();
return factory;
} else {
return factory;
}
}

/**
* 启动定时器,每隔period时间执行一次任务
* @param period
*/
public synchronized void start(long period,int count,TimerTask task) {
this.task = (TimerTask)task;
time.schedule(task,0,period);
}

/**
* 复位计时器
*
*/
public synchronized void stop() {

/* 取消任务*/
task.cancel();

/* 清空任务队列*/
time.purge();

task = null;

}

}

这段代码中start方法用来启动一个TimerTask任务,stop取消一个TimerTask任务,并清空任务队列。
具体在定时任务要每次执行什么,可以在实现TimerTask的类的run方法中定义。
具体实例:定时打印语句等。




本文转自
http://blog.csdn.net/lysnow_oss/archive/2007/04/26/1586487.aspx
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值