Java中常规间隔的减量

时间:2009-12-11 17:52:15

标签: java timer

我正在用Java编写应用程序,但需要知道如何每秒从变量中减去一次。最简单的方法是什么?谢谢!

5 个答案:

答案 0 :(得分:6)

要执行重复操作的the very Java class you need to use的名称已经位于您的某个代码中! ;)

答案 1 :(得分:5)

虽然Timer课程有效,但我建议您使用ScheduledExecutorService

虽然它们的使用非常相似,但ScheduledExecutorService更新,更有可能获得持续维护,非常适合其他并发实用程序,并可能提供更好的性能。

答案 2 :(得分:2)

class YourTimer extends TimerTask
{
  public volatile int sharedVar = INITIAL_VALUE;

  public void run()
  {
    --sharedVar;
  }

  public static void main(String[] args)
  {
     Timer timer = new Timer();

     timer.schedule(new YourTimer(), 0, 1000);
     // second parameter is initial delay, third is period of execution in msec
  }
}

请记住,Timer类不能保证是实时的(就像Java中几乎所有内容一样。)

答案 3 :(得分:2)

你想要达到什么目的?我不会尝试依靠计时器正确地每秒发射一次。我只是记录开始时间,每当计时器触发时,重新计算变量的值应该是什么。我就是这样做的......

class CountdownValue {
  private long startTime;
  private int startVal;

  public CountdownValue(int startVal)
  {
     startTime = System.currentTimeMillis();
  }

  public int getValue()
  {
     return startVal - (int)((System.currentTimeMillis() - startTime)/1000);
  }
}

答案 4 :(得分:0)

使用java.util.Timer创建TimerTask。