java 线程定时器

我现在要写一个线程定时器。但不知道如何下手。请高手指点一下
有一个监视表montor,里面有个字段switch值为0代表关。当switch的值为1时代表开。开始启动并调用ResultSetsql()方法。并设置多长时间再次调用ResultSetsql();直到switch的值改为0时才停止

根据楼主的描述,可以有两种理解:
方法1:创建一个Timer,用于在间隔时间后调用ResultSetsql()方法
在switch值发生改变的时候对Timer进行操作
值变为0时调用timer.cancel();
值为1时调用
timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
ResultSetsql();
}
}, repeattime);

方法2:建立一个线程,每隔一秒进行循环,检查monitor switch的状态
new Thread(new Runnable() {
@Override
public void run() {
while(isRun){
if(monitor.switch == 1){
ResultSetsql();
try {
Thread.sleep(repeattime);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}).start();

两种方法有各自的适用环境,如果楼主能继续描述就更好了
欢迎继续提问
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-12
看下api,
Timer类
TimerTask类,你肯定自己能找到答案的