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