java定时器用什么实现

如题所述

java定时器的使用(Timer)
1、在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等。
对于这样的操作最方便、高效的实现方式就是使用java.util.Timer工具类。
private java.util.Timer timer;
timer = new Timer(true);
timer.schedule(
new java.util.TimerTask() { public void run()
{ //server.checkNewMail(); 要操作的方法} }, 0, 5*60*1000);
第一个参数是要操作的方法,第二个参数是要设定延迟的时间,第三个参
数是周期的设定,每隔多长时间执行该操作。
使用这几行代码之后,Timer本身会每隔5分钟调用一遍
server.checkNewMail()方法,不需要自己启动线程。Timer本身也是多线程同
步的,多个线程可以共用一个Timer,不需要外部的同步代码。
2、
(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)安
排指定的任务在指定的延迟后开始进行重复的固定速率执行.
用Java Timer API 进行时间调度开发的相关注意点
java.util这个包中可以找到Timer和TimerTask这两个类。Timer直接从Object
继承,它相当于一个计时器,能够用它来指定某个时间来执行一项任务,或者
每隔一定时间间隔反复执行同一个任务。创建一个Timer后,就会生成一个线程
在背后运行,来控制任务的执行。而TimerTask就是用来实现某项任务的类,
它实现了Runnable接口,因此相当于一个线程。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-20
可以用Timer类结合 TimerTask类实现计时器,如下所示
public class TimerTest {
public static int time;
public static boolean isRecv;
public static void main(String[] args) {

Random rand = new Random();
int randInt = rand.nextInt(10000);
System.out.println("rand int is: " + randInt);
final Timer timer = new Timer();
final Timer timer1 = new Timer();
timer.schedule(new TimerTask(){
@Override
public void run() {
if(!isRecv) {
time++;
System.out.println(time);
}
else {
timer.cancel();
System.out.println("timer canceled");
}
}
},0 ,1000);// 在1秒后执行此任务,每次间隔2秒
timer1.schedule(new TimerTask() {
@Override
public void run() {
isRecv = true;
System.out.println("set isRecv");
timer1.cancel();
System.out.println("timer1 canceled");
}
}, randInt);
}
}本回答被提问者采纳