现在本人想在java中实现每五分种定时执行一个方法,请问大家是用timer,还是用Thread的sleep控制时间,
还是有其它更好的方法?

解决方案 »

  1.   

    用Timer吧,有用的为啥不用呢?非得线程写循环sleep干这事?没必要
      

  2.   

    Quartz和以上的有什么区别?我想用个相对针对每五分种定时计划先个最优的
      

  3.   

    Quartz是一个开源项目,可以进行大量的计划任务的调度和管理,比较方便吧,不过要导入第三方包,楼主如果任务简单就没必要用,任务多而复杂的话,用Quartz就比较好
      

  4.   

    import java.util.concurrent.*;final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
    final Runnable doThing = new Runnable() {
        public void run() { ... }
    };
    final ScheduledFuture<?> doFuture = scheduler.scheduleAtFixedRate(doThing, 0, 5, TimeUnit.MINUTES);
      

  5.   

    强烈建议使用 6 楼的方案。Timer, TimerTask 在设计上存在缺陷,如果执行时产生异常,会产生混乱的行为。如果不使用第三方的调度框架,那就使用 6 楼的方案。在 JDK 5 及以后不要再去使用 Timer/TimerTask 了。