Chinaunix首页 | 论坛 | 博客
  • 博客访问: 344549
  • 博文数量: 97
  • 博客积分: 2130
  • 博客等级: 大尉
  • 技术积分: 1800
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-24 11:51
文章分类
文章存档

2013年(57)

2012年(40)

我的朋友

分类: Java

2012-12-13 10:05:01

定时器类Timerjava.util包中。使用时,先实例化,然后使用实例的schedule(TimerTask

task, long delay)方法,设定指定的任务task在指定的延迟delay后执行。定时器任务类

TimerTask是抽象类,继承并重写其run()方法,可实现具体任务。

schedule(TimerTask task, Date time)设定指定任务task在指定时间time执行。

cancel()方法结束这个定时器。

schedule(TimerTask task, long delay, long period)方法设定指定任务task在指定延迟

delay后进行固定延迟peroid的执行。

scheduleAtFixedRate(TimerTask task, long delay, long period)方法设定指定任务task

在指定延迟delay后进行固定频率peroid的执行。

要实现一个定时任务,运用java中的TimerTimerTask类可以非常容易实现实时调用处

理函数。这两个类使用起来非常方便,可以完成我们对定时器的绝大多数需要。

看个简单的例子:

import java.io.IOException;

import java.util.Timer;

public class TimerTest {

public static void main(String[] args){

Timer timer = new Timer();

timer.schedule(new MyTask(), 1000, 2000);//1秒后执行此任务,每次间隔2,如果

传递一个Data参数,就可以在某个固定的时间执行这个任务.

while(true){//这个是用来停止此任务的,否则就一直循环执行此任务了

try {

int ch = System.in.read();

if(ch-'c'==0){

timer.cancel();//使用这个方法退出任务

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

static class MyTask extends java.util.TimerTask{

@Override

public void run() {

// TODO Auto-generated method stub

System.out.println("________");

}

}

}

好多朋友用过Windows的任务计划,也有不少程序迷自己曾写过时钟报警、系统自动关机等趣味程序,可却很少有朋友在Web工程中实现过类似功能。今天有空把笔者先前曾在Tomcat上实现的类似功能,搬出来与大家共享。

阅读(1066) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~