代码之家  ›  专栏  ›  技术社区  ›  Manuel Selva

Java线程每X秒

  •  34
  • Manuel Selva  · 技术社区  · 14 年前

    以给定的速率调度一段Java代码最简单的方法是什么?

    4 回复  |  直到 14 年前
        1
  •  90
  •   Matt Ball    14 年前

    在Java 5+中使用 ScheduledExecutorService :

    ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor();
    exec.scheduleAtFixedRate(new Runnable() {
      @Override
      public void run() {
        // do stuff
      }
    }, 0, 5, TimeUnit.SECONDS);
    

    Timer TimerTask

    timer.scheduleAtFixedRate(new TimerTask() {
      @Override
      public void run() {
        // do staff
      }
    }, 0, 5000);
    
        2
  •  8
  •   Chris Forrence    8 年前

    通过使用 ScheduledExecutorService .

    看一看 Executors.newScheduledThreadPool ScheduledExecutorService 你可以提交 Runnable

        3
  •  6
  •   flamming_python    12 年前
    while (true) {
        thread.sleep(1000)
        method();
    }
    

    在许多情况下,会有更好的选择。但这是以1000ms+n的间隔(其中n是执行method()所花费的时间)实现method()的常规执行的最简单方法

        4
  •  3
  •   Lucifer phtrivier    10 年前

    使用以下代码:

    Timer timer = new Timer(); 
    timer.schedule( new TimerTask() 
    { 
        public void run() { 
        // do your work 
        } 
    }, 0, 60*(1000*1));