我打算每秒执行一个方法,如何设置定时器?

shaxue 2011-04-21 02:33:44
我打算用定时器Timer实现如下功能, 每隔一秒,打开d:\wait.xml,看看里面是否有值为false,如果有,就取出此记录,然后设置为true.

网上说,每秒的任务是不是用线程更好?
我会让他一直监测下去,

怎么做效率最高呢?
...全文
400 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
BackToFuture 2011-04-21
  • 打赏
  • 举报
回复
一秒是个问题,如果用timer,一秒内不能处理完操作,就杯具了。在这种情况,使用进程也不能达到每秒钟读写一次,最理想的情况是,读写完后,隔1秒钟再读写
shaxue 2011-04-21
  • 打赏
  • 举报
回复
这个是不是,存在上面所讨论的,如果一秒钟内,具体的事情没有昨晚,仍然在不断的执行?导致....问题呢?我要做的是打开本地的xml文件,效率应该挺低的.

[Quote=引用 6 楼 keeya0416 的回复:]
Java code

public class TimerTest {

public static void main(String[] args) throws InterruptedException {
new TimerTest().execute();

}

public void execute(){……
[/Quote]
keeya0416 2011-04-21
  • 打赏
  • 举报
回复

public class TimerTest {

public static void main(String[] args) throws InterruptedException {
new TimerTest().execute();

}

public void execute(){
java.util.Timer timer = new java.util.Timer();
MyTimerTask m = new MyTimerTask();
java.util.Date date = new java.util.Date();
timer.schedule(m, date, 1000);
}

}

class MyTimerTask extends java.util.TimerTask{
public void run(){
//需要的操作
}
}



oO临时工Oo 2011-04-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 shaxue 的回复:]
那每隔一秒执行一次,但是方法打开文件然后执行,并没有执行完的话,他是如何处理的呢?
[/Quote]
当然是被操作系统sleep了,等wakeup后继续执行.所以当系统压力大时,操作系统都调度不过来了,可能就不只1s了,卡的话若干s,
建议操作前一定要把计时器关了,计时器估计是一个单独的线程,说不定会出现计时器已经计时到下一个周期了,但上一个周期的任务还没做完.而且计时器的线程优先级估计较高.
shaxue 2011-04-21
  • 打赏
  • 举报
回复
那每隔一秒执行一次,但是方法打开文件然后执行,并没有执行完的话,他是如何处理的呢?
eriklee1945 2011-04-21
  • 打赏
  • 举报
回复
设置Timer类得间隔为1秒,然后写ActionListener接口就行了!
  • 打赏
  • 举报
回复
就用线程吧。。
oO临时工Oo 2011-04-21
  • 打赏
  • 举报
回复
用线程好.为啥要一秒呢,读写文件时间长上点嘛,你这样说不定有时就读不到文件了.为了目的是否可以换一种方式

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧