我打算用定时器Timer实现如下功能, 每隔一秒,打开d:\wait.xml,看看里面是否有值为false,如果有,就取出此记录,然后设置为true.网上说,每秒的任务是不是用线程更好?
我会让他一直监测下去,怎么做效率最高呢?

解决方案 »

  1.   

    设置Timer类得间隔为1秒,然后写ActionListener接口就行了!
      

  2.   

    当然是被操作系统sleep了,等wakeup后继续执行.所以当系统压力大时,操作系统都调度不过来了,可能就不只1s了,卡的话若干s,
    建议操作前一定要把计时器关了,计时器估计是一个单独的线程,说不定会出现计时器已经计时到下一个周期了,但上一个周期的任务还没做完.而且计时器的线程优先级估计较高.
      

  3.   


    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(){
            //需要的操作
        }
    }
      

  4.   

    这个是不是,存在上面所讨论的,如果一秒钟内,具体的事情没有昨晚,仍然在不断的执行?导致....问题呢?我要做的是打开本地的xml文件,效率应该挺低的.
      

  5.   

    一秒是个问题,如果用timer,一秒内不能处理完操作,就杯具了。在这种情况,使用进程也不能达到每秒钟读写一次,最理想的情况是,读写完后,隔1秒钟再读写