您的位置:首页 > 其它

Timer TimerTask 定时器线程

2014-02-23 17:48 281 查看
(1)Timer.schedule(TimerTask task,Date time)安排在制定的时间执行指定的任务。

(2)Timer.schedule(TimerTask task,Date firstTime ,long period)安排指定的任务在指定的时间开始进行重复的固定延迟执行.

(3)Timer.schedule(TimerTask task,long delay)安排在指定延迟后执行指定的任务.

(4)Timer.schedule(TimerTask task,long delay,long period)安排指定的任务从指定的延迟后开始进行重复的固定延迟执行.

(5)Timer.scheduleAtFixedRate(TimerTask task,Date firstTime,long period)安排指定的任务在指定的时间开始进行重复的固定速率执行.

(6)Timer.scheduleAtFixedRate(TimerTask task,long delay,long period)安排指定的任务在指定的延迟后开始进行重复的固定速率执行.

Timer构造函数:

Timer(int delay,ActionListener listener):建立一个Timer组件,并在每一次delay的时间点上触发ActionEvent. 使用Timer组件它会在根据你所给予的delay时间,周期性的触发ActionEvent事件

,如果你要处理这个事件,你必须实作 ActionListener界面所定义的actionPerformed()方法。要开始激活Timer组件,你可以用start()方法,要停止Timer组件可以使用 stop()方法,要从新激活

Timer组件可以使用restart()方法,若只想Timer组件只触发一次ActionEvent事件,可利用 setRepeats(false)方法,将参数设为false,若要设置delay时间则可用setDelay()方法。

默认情况下,只要一个程序的timer线程在运行,那么这个程序就会保持运行。当然,可以通过以下四种方法终止一个timer线程:

1) 调用timer的cancle方法。可以从程序的任何地方调用此方法,甚至在一个timer task的run方法里。

2) 让timer线程成为一个daemon线程(可以在创建timer时使用new Timer(true)达到这个目地),这样当程序只有daemon线程的时候,它就会自动终止运行。

3) 当timer相关的所有task执行完毕以后,删除所有此timer对象的引用(置成null),这样timer线程也会终止。

4) 调用System.exit方法,使整个程序(所有线程)终止。

列:

import java.awt.Toolkit;

 import java.util.TimerTask;

 public class MyTimerTask extends TimerTask{

 private Timer timer;

 public MyTimerTask(Timer timer) {

this.timer = timer;

 }

 @Override

public void run() {

System.out.println("任务执行");

 timer.cancel(); //终止定时器

// System.exit(0); //退出程序

}

 }

用下面的main方法运行

import java.util.Timer;

public class TimerDemo {

public static void main(String[] args) {

Timer timer = new Timer();

timer.schedule(new MyTimerTask(timer), 5000); //5 秒后执行指定任务一次

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: