我正在用Java编写应用程序,但需要知道如何每秒从变量中减去一次。最简单的方法是什么?谢谢!以Java中的常量间隔递减
回答
做重复操作的名称the very Java class you need to use已经坐在你的标签之一! ;)
这是多么有趣,但粗鲁。我会查找它。 – 2009-12-11 17:57:32
对不起,没有粗鲁的意图!只是试图保持它的松散。 – 2009-12-11 18:09:28
+1。我会以同样的方式回应。 – BalusC 2009-12-11 18:13:13
使用java.util.Timer创建TimerTask。
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
}
}
Remeber是Timer
类是不能保证实时(如几乎所有的在Java中..)
虽然Timer
类将工作,我建议使用ScheduledExecutorService
代替。
虽然它们的用法非常相似,但是ScheduledExecutorService
更新,更有可能接受持续维护,可以很好地与其他并发实用程序配合使用,并且可能会提供更好的性能。
很高兴了解有关ScheduledExecutorService的+1。然而,我会要求看到证据表明这个人会比其他人更好地维护。 – 2009-12-11 19:49:10
你想达到什么目的?我不会尝试依靠定时器每秒钟恰好触发一次。我只需记录开始时间,并在计时器触发时重新计算变量的值应该是多少。下面是我该怎么做...
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);
}
}
没有'getCurrentTimeMillis()'这样的方法。无论如何,如果你想重新创建'java.util.Timer',而是使用'nanoTime()'而不是'currentTimeMillis()',因为它具有更好的准确性。 – BalusC 2009-12-11 18:14:59
我不想重新发明计时器。我试图让一些能够在重负载系统上更加可靠地工作的东西(例如,当定时器正在等待时间片时,你不会有不正确的数值,只有百分之几秒)。 – Yuliy 2009-12-11 19:15:01
此外,getCurrentTimeMillis错字很好。固定的。 – Yuliy 2009-12-11 19:15:32
- 1. Java中的停车场,递减空间
- 2. 以设定的时间间隔减去数值?
- 3. 减去同一列中的字段以获得间隔
- 4. 函数以无限期递减的间隔运行等待操作
- 5. Cocos2d进度间隔减少
- 6. SQL时间戳间隔减去7天
- 7. 递减的一个变量
- 8. 在java中设置的时间间隔
- 9. Java中的大量常量
- 10. NumberPicker的设置增加/减少间隔
- 11. 如何减少常量中的重复?
- 12. perl中的“递归”常量
- 13. 变量是否可以是间隔(as3)?
- 14. 如何通过常量递减device_vector的每个元素?
- 15. Java模式类中的“空”间隔量词
- 16. 在java中创建时间间隔
- 17. HAProxy递减吞吐量
- 18. 减少GridLayout Java Swing中的空间
- 19. 以特定的时间间隔以
- 20. 以一定的时间间隔比较变量的值
- 21. CSS - 屏幕减去常量
- 22. Java:以指定的时间间隔执行方法
- 23. 在JAVA中以特定时间间隔运行特定时间的线程
- 24. 以100毫秒的间隔在java中显示图像
- 25. textfile分隔java nosuchelement异常
- 26. 在Java中提供一定的时间间隔的睡眠间隔
- 27. 如何获得时间间隔中的度量的增量
- 28. 计算量的间隔
- 29. JSP中的Java常量
- 30. Java中的字母常量?
我想要的“元问题”是实际要求是什么。自特定时间点以来的秒数很容易在没有后台线程的情况下进行计算,然后可将其转换为startValue - numberOfSeconds的实时计算。如果你的计时器由于某种原因不能启动,你不会失去减量。 – PSpeed 2009-12-11 18:00:58
这个问题需要一个计时器。 – 2009-12-11 19:07:15