您的位置:首页 > 编程语言 > Java开发

java之Timer

2016-05-23 16:42 555 查看
一、Java2的开发包中提供了一种很好使用的线程功能:你可以使用这些类创建后台进程,让其在等待一段规定的时间后执行,或者让其每隔一段时间执行。你也可以用Thread来完成,但利用Timer与TimerTask显然省事不少。
  TimerTask实现了Runnable接口,待执行的任务置于run()中。Timer是一个安排TimerTask的类此此两者一般一起工作。所应用时首先硬创建一个TimerTask的对象,然后用一个Timer的类对象安排执行它

二、例子

package com.bmkit.util.date;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

/**
* Created by root on 16-5-23.
*/
public class TestTimer {

public static void main(String[] arg) {
Timer timer = new Timer();

/**
* public void scheduleAtFixedRate(TimerTask task,long delay,long period)
* public void schedule(TimerTask task,long delay,long period)
* 任务进行重复的固定速率period执行,在指定的延迟delay后开始。
*/
timer.scheduleAtFixedRate(new Case(), 1000, 2000);
timer.schedule(new Case(), 1000, 2000);

/**
* public void scheduleAtFixedRate(TimerTask task,Date firstTime,long period)
* public void schedule(TimerTask task,Date firstTime,long period)
* 任务进行重复的固定速率period执行,从firstTime后开始。
*/
String sDate = "2016-05-23 16:40:32";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
timer.scheduleAtFixedRate(new Case(), dateFormat.parse(sDate), 1000);
} catch (ParseException e) {
e.printStackTrace();
}

/**
* public void schedule(TimerTask task,Date time)
* task被安排在time指定的时间time执行。
*/
String sDate1 = "2016-05-23 16:40:32";
SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
timer.schedule(new Case(), dateFormat1.parse(sDate1));
} catch (ParseException e) {
e.printStackTrace();
}

/**
* public void cancel()
*终止Timer的功能执行,但不会对正在执行的任务有影响。当执行cancel方法后将不能再用其分配任务。
*/
timer.cancel();

}

}

/**
* 必须继承TimerTask
*/
class Case extends TimerTask {

@Override
public void run() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(dateFormat.format(new Date()));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: