Timer定时器

定时器

定时器是一个应用广泛的线程工具,可以用于调度多个定时任务以后台线程的方式执行。在Java中可以用Timer和TimerTask类来来实现定义调度的功能

方法:

cancel()取消任务或定时器


构造方法:

public void schedule(TimerTask task, long delay): 经过delay这么长时间执行task这个任务

public void schedule(TimerTask task,long delay,long period);经过delay这么长时间第一次执行task这个任务,然后每隔period时间在此执行task任务

public void schedule(TimerTask task,  Date time): 就是在time指定的时间点上执行task任务

public void schedule(TimerTask task,  Date firstTime, long period):就是在Timer指定的时间点上第一次执行task任务,然后每隔period时间在此执行task的任务

接口TimerTask

package org.westos.demo2;
import java.util.Timer;
import java.util.TimerTask;
public class MyTimeTask extends TimerTask{
	Timer time;
	public MyTimeTask(Timer time) {
		super();
		this.time=time;
	}
	@Override
	public void run() {
		//需要定时器执行的代码
		System.out.println("砰-----爆炸了");
		time.cancel();
	}
}

经过delay这么长时间第一次执行task这个任务,然后每隔period时间在此执行task任务

package org.westos.demo2;

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

public class MyTest2 {

	public static void main(String[] args) {

//经过delay这么长时间第一次执行task这个任务,然后每隔period时间在此执行task任务
		Timer timer = new Timer();
		timer.schedule(new TimerTask() {
			
			@Override
			public void run() {
				System.out.println("砰---爆炸了");
				
			}
		}, 1000,1000);
	}
}

在time指定的时间点上执行task任务

package org.westos.demo2;

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

public class MyTest3 {

	public static void main(String[] args) throws ParseException {
//	就是在time指定的时间点上执行task任务
		Timer timer = new Timer();
		//指定定时任务执行的日期
		String time="2018-02-26 16:51:00";
		Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(time);
		timer.schedule(new TimerTask() {
			
			@Override
			public void run() {
				System.out.println("爆炸了");
				
			}
		}, date);
	}
}

案例:定时删除文件夹

package org.westos.demo2;

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

public class MyTest4 {

	public static void main(String[] args) throws ParseException {
		// 定时删除文件夹
		Timer timer = new Timer();
		String time = "2018-02-26 17:01:00";
		Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(time);
		timer.schedule(new MyTask(timer), date);

	}

}

class MyTask extends TimerTask {

	Timer timer;

	public MyTask(Timer timer) {
		super();
		this.timer = timer;
	}

	@Override
	public void run() {
		// 执行删除文件夹的操作
		File file = new File("E:\\demo");
		delFile(file);
		// 关闭定时器
		timer.cancel();
	}

	public void delFile(File file) {
		File[] listFiles = file.listFiles();
		for (File f : listFiles) {
			if (f.isFile()) {
				f.delete();
			} else {
				delFile(f);
			}
		}
		file.delete();
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值