Java 定时器 Timer 定时任务 TimerTask 快速入门

通俗一点讲,想要做一个定时任务,要具备两个东西——定时器(Timer)和任务(TimerTask)。

Timer

一种工具,线程用其安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。

 注意:与每个 Timer 对象相对应的是单个后台线程,用于顺序地执行所有计时器任务。计时器任务应该迅速完成。如果完成某个计时器任务的时间太长,那么它会“独占”计时器的任务执行线程。因此,这就可能延迟后续任务的执行,而这些任务就可能“堆在一起”,并且在上述不友好的任务最终完成时才能够被快速连续地执行。 

TimerTask

 表示一个定时任务,它是一个抽象类,实现了Runnable,具体的定时任务需要继承该类,实现run方法(每次执行的代码放到这里面)。
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimerTask;

public class TimerTaskTest extends TimerTask {
	SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	@Override
	public void run() {
		System.out.println("现在上海时间:"+df.format(new Date()));
	}

}
import java.util.Timer;


public class Test {


	public static void main(String[] args) {
		Timer timer = new Timer();
		//timer.schedule(task, delay, period)
		//delay为long,period为long:从现在起过delay毫秒以后,每隔period 毫秒执行一次。
		timer.schedule(new TimerTaskTest(), 1000, 1000);
	}


}
现在上海时间:2018-07-02 17:35:27
现在上海时间:2018-07-02 17:35:28
现在上海时间:2018-07-02 17:35:29
现在上海时间:2018-07-02 17:35:30
现在上海时间:2018-07-02 17:35:31
现在上海时间:2018-07-02 17:35:32
//以下是几种调度task的方法: 
timer.schedule(task, time); 
// time为Date类型:在指定时间执行一次。 
timer.schedule(task, firstTime, period); 
// firstTime为Date类型,period为long 从firstTime时刻开始,每隔period毫秒执行一次。 
timer.schedule(task, delay) 
// delay 为long类型:从现在起过delay毫秒执行一次 
timer.schedule(task, delay, period) 
// delay为long,period为long:从现在起过delay毫秒以后,每隔period 毫秒执行一次。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值