我正在用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. 遞增遞減間隔
- 2. Java中的停車場,遞減空間
- 3. Java中的減量
- 4. 遞減和Java中
- 5. 以角度形式遞增遞減量
- 6. 隨着時間的推移Java遞減
- 7. 以設定的時間間隔減去數值?
- 8. 減去同一列中的字段以獲得間隔
- 9. 函數以無限期遞減的間隔運行等待操作
- 10. Cocos2d進度間隔減少
- 11. 增量和變量的遞減printf中
- 12. SQL時間戳間隔減去7天
- 13. 減去兩個時間間隔
- 14. Java的時間間隔
- 15. 在Angular中,我可以將常量傳遞給常量嗎?
- 16. 以編程方式減少處理程序中的時間間隔。 Android
- 17. 遞減的一個變量
- 18. 在java中設置的時間間隔
- 19. Java中的大量常量
- 20. NumberPicker的設置增加/減少間隔
- 21. 逐漸減少RepeatButton的間隔
- 22. 減少循環中遞增的變量
- 23. 如何減少常量中的重複?
- 24. 變量是否可以是間隔(as3)?
- 25. perl中的「遞歸」常量
- 26. 以間隔
- 27. 遞歸方法調用中的遞增/遞減(Java)
- 28. 如何通過常量遞減device_vector的每個元素?
- 29. XML和Java之間的常量值
- 30. Java模式類中的「空」間隔量詞
我想要的「元問題」是實際要求是什麼。自特定時間點以來的秒數很容易在沒有後臺線程的情況下進行計算,然後可將其轉換爲startValue - numberOfSeconds的實時計算。如果你的計時器由於某種原因不能啓動,你不會失去減量。 – PSpeed 2009-12-11 18:00:58
這個問題需要一個計時器。 – 2009-12-11 19:07:15