Timer&&TimerTask测试

(出处:http://sunrise353.iteye.com/blog/197211)

Timer&&TimerTask测试

一个TimerTask只能被指派给一个时钟。



当timer.schedule(task,5000,1000)后,时钟启动,其实就是起来一个特殊的新的线程,当执行完了timeTask里面的内容后这个线程是不会停止的。要停止这个线程只有timer.cancel().

Timer.scheduleAtFixedRate(….)是按照固定的速率来进行的,比较与timer.schedule(…)在一切正常的情况下是一样的。但是如果由于(垃圾回收或者后台的活动)导致某一次的执行受阻,则schedule()之后的执行都会有一定的延迟(固定的延迟时间)。但是scheduleAtFixedRate()(固定速率)在之后的执行中可能会一下子执行很多次,为了赶上落后的部分,使得总的速率不变。



Timer timer=new Timer(true);//Timer(boolean isDaemon)将与这个时钟相关的线程设置为守护线程,

Date d= new SimpleDateFormat("yyyyMMdd HH:mm").parse("20080526 17:17");

timer.schedule(task,d);//指定的时间,执行指定的任务,执行一次。

在这里执行完任务后,如果主程序已经执行完成,jvm就可以退出了。

否则Timer timer=new Timer();//与时钟相关的线程是非守护的线程,则执行完任务后,即使主程序已经结束,但还是不会退出jvm。



取消Timer对象的任务,boolean b=timerTask.cancel();//正常取消返回true

取消Timer时钟,timer.cancle();

你可能感兴趣的:(jvm,活动,Blog)