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

JAVA定时器Timer的使用

2017-08-08 10:19 323 查看
java定时器的实现主要是靠Timer来实现的

Timer中的常用的几个方法: 

/** 

*任务在delay时间后执行且只执行一次 

**/ 
public void schedule(TimerTask task,long delay); 

/** 

*任务在时间为date执行且只执行一次,如果date为过去时间,则任务立即执行。 

**/ 
public void schedule(TimerTask task,Date date); 

/** 

*任务以peroid为周期重复执行,第一次执行延误delay时间 

**/ 
public void schedule(TimerTask task,long delay,long peroid); 

/** 

*任务以peroid为周期重复执行,第一次执行时间为firstTime,若firstTime为过去时间,则任务立即执行 

**/ 

public void schedule(TimerTask task,Date firstTime,long peroid);


demo:

TimerTask类

package com.cn.lyb.schedule;

import java.text.SimpleDateFormat;

import java.util.Date;import java.util.TimerTask;

/** * 定时器 *

@author liyabin *

*/

public class Task extends TimerTask{

public void run() {

SimpleDateFormat sf=new SimpleDateFormat("hh-mm-ss");

System.out.println("任务执行:"+sf.format(new Date()));

System.out.println("now let's begin to excute a timer task");

}

}

packa
4000
ge com.cn.lyb.schedule;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;import java.util.Timer;

import java.util.logging.SimpleFormatter;

public class TaskMaster {

private Calendar calendar=Calendar.getInstance();

private static final long PEROID_DAY=24*60*60*1000;

public TaskMaster(){

int year=calendar.get(Calendar.YEAR);

int month=calendar.get(Calendar.MONTH);

int date=calendar.get(Calendar.DAY_OF_MONTH);

calendar.set(year,month,date,13,58,30);

System.out.println("--------");

Date ecDate=calendar.getTime();

ecDate=this.addDate(ecDate, 1);

Timer timer=new Timer();

Task task=new Task();

SimpleDateFormat sf=new SimpleDateFormat("hh-mm-ss");

System.out.println(sf.format(new Date()));

///若是希望每天定时执行则将peroid参数改为PEROID_DAY即可

timer.schedule(task,ecDate,6000);

}

private Date addDate(Date date,int num){

Calendar startDt=Calendar.getInstance();

startDt.setTime(date);

startDt.set(Calendar.DAY_OF_WEEK_IN_MONTH,num);

return startDt.getTime();

}

public static void main(String[] args){

System.out.println("主程序");

new TaskMaster();

}



执行结果如下:


主程序

02-11-19 

任务执行:02-11-19 

now let’s begin to excute a timer task 

任务执行:02-11-25 

now let’s begin to excute a timer task 

任务执行:02-11-31 

now let’s begin to excute a timer task
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: