JDK Timer简单调度

  最近,被女人烦得不行!一会儿喊我商量投资,一会儿喊我商量买房的,真不知道要干嘛,鼻子被她牵得不轻!看看这房价,罢了罢了,等跌,呵呵呵! 

  这家伙跑到上海工作了,没想还这么的麻烦,工作忙了一周了,现在也有个闲工夫来学习了,学习以前看过但没有用过,没有总结过,又忘记了的东东!

  今天就从最基本的 JDK Timer 调度开始吧,姑且认为是一计时器吧。学一点,记一点嘛,这也是一种积累学习的方法。钱,是个好东西,但是呢,现在才二十四五岁的把工资看得太重有些过分,现在哪怕一个月存个两三千,以后要是咱Java底子更硬了,一个月的工资就顶得上几个月的了,所以,现在存个毛钱呀,学好、吃好、玩好就OK了!

  说起这个调度呢,那我们在做项目、日常生活中的应用就有些广了,今天说的呢,是我们JDK里自带的一种很简单的实现:java.util.Timerjava.util.TimerTask,望文生义:

  1、 TimerTask:就是一任务,建立的要执行的任务;
      TimerTask是一抽象类,所以,要建立多复杂的任务,就看你的了,实现 run()抽象方法,定义你的任务,他呢,还有另外的两个方法,cancel():取消此计时器任务、scheduledExecutionTime():返回此任务这次实际执行的安排执行时间。
  2、 Timer:这个呢,就有点像个总指挥了,而且还是个很有威信的指挥,线程安全,存在多个没有问题,照收。专职指挥 TimerTask里定义的任务叫他去做。到底是怎么指挥 TimerTask呢,这里呢,他就有多个任务安排的schedule()方法了,他有多个重载的版本,反正宗旨就是一个,叫 TimerTask干活,就是个怎么干的问题了。也就是针对某一个 TimerTask,并设置规则让 TimerTask去完成任务。
 
  大体上呢,我个人理解就这么样的个意思,OK再来看看这两个的具体实现吧:
 
     1、先定义个也许重新执行的任务吧:
         
package com.cui.hourse.jdkTimerDemo;

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

public class SimpleTimerTask extends TimerTask {

	private int count = 1;//计数
	@Override
	public void run() {
		System.out.println("execute task now");
		Date exeTime = new Date(scheduledExecutionTime());
		System.out.println("本次任务安排执行的时间为: "+exeTime);
		if(++count>5){
			System.out.println("cancle...");
			cancel();//取消任务
		} 
	}
}
    2、总指挥怎么安排工作任务:
package com.cui.hourse.jdkTimerDemo;

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

public class TimerRunner {
	public static void main(String[]args){
		Timer timer = new Timer();//指挥登场了
		TimerTask task = new SimpleTimerTask();//司职任务
		/**
		 * 总管让这个task,过两秒后,每隔5秒执行一次,直到五次!
		 * */
		timer.schedule(task, 2000L, 5000L);
	}
}
   3、运行看结果:
   
Showtime now: Fri Apr 23 23:05:01 CST 2010
execute task now
本次任务安排执行的时间为: Fri Apr 23 23:05:03 CST 2010
execute task now
本次任务安排执行的时间为: Fri Apr 23 23:05:08 CST 2010
execute task now
本次任务安排执行的时间为: Fri Apr 23 23:05:13 CST 2010
execute task now
本次任务安排执行的时间为: Fri Apr 23 23:05:18 CST 2010
execute task now
本次任务安排执行的时间为: Fri Apr 23 23:05:23 CST 2010
cancle...
 OK,搞定!
    
 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值