昨天晚上有个老会员问我怎么定时调用一个函数,我告诉他用Timer就可以了,但是他还是搞不定,其实这个东西看看文档就出来了,但是他搞不定,呵呵!无奈之下我只有写了一点简单的代码.出忽我的意料之外的是这个东西还是多线程的,呵呵!原来简单的东西也会让人有所收获啊!
先把代码贴出:
import java.util.Timer;
import java.util.TimerTask;
public class TimerTrail {
public void dothings() {
Timer t = new Timer();
t.schedule(new TimerTask() {
public void run() {
System.out.println("this is a task"); ]
}
}, 1000);
}
public static void main(String[] args) throws Exception {
final TimerTrail st = new TimerTrail();
while(true){
st.dothings();
}
}
}
我原本是想让程序每秒输出一次的,可是结果是开始一秒没动静,然后疯狂的输出this is a task
这个时候我才明白,原来这个东西是个多线程的.呵呵!
等效代码是
While(true){
new Thread(new Runnable(){
public void run(){
System.out.println(“this is a task”);
}
}).start();
}
也难怪了,如果这个Timer不是多线程的,那程序不是要在这里卡死,直到时间到执行指定操作.呵呵!好东西啊!Timer!