我有一個需要運行一個while循環5分鐘。 我尋找計時器API,但我找不到這樣做。 任何人都可以爲此提供代碼snipet。
謝謝運行循環5分鐘
運行循環5分鐘
回答
最簡單的方法是檢查每次迭代已經過了多少時間。例如:
final long NANOSEC_PER_SEC = 1000l*1000*1000;
long startTime = System.nanoTime();
while ((System.nanoTime()-startTime)< 5*60*NANOSEC_PER_SEC){
// do stuff
}
這將運行循環,直到超過5分鐘過去。
注:
- 本次循環總是會完成,所以在實踐中,它會永遠爲位運行超過5分鐘。
- 對於此應用程序,
System.nanoTime()
比System.currentTimeMillis()
更適合,因爲如果計算機的系統時鐘已調整,後者將會發生變化,從而導致計算失敗。 感謝Shloim指出這一點。
如果用戶在循環運行時調整自己的時鐘,則循環將不會運行1分鐘。它可能會運行數月或數年。這是因爲System.currentTimeMillis()從1970/01/01-00:00:00返回msecs的數量。你需要一個單調的時間計數器,比如'System.nanoTicks()' – Shloim 2016-01-12 12:36:36
因爲你在談論定時器API,我猜你以後是延遲而不是「循環運行5分鐘」。如果是這種情況,你可以使用類似Thread.sleep(..)的東西,這樣可以讓CPU做更多有用的東西來忙等待。或者至少節省一些能源和地球。
是的,對於簡單的延遲這是正確的答案。這個問題有點不清楚...... – sleske 2010-09-23 21:52:04
此循環將運行5分鐘。它不會受到計算機日期/時間變化(用戶或NTP)的影響。應避免
long endTime = System.nanoTicks() + TimeUnit.NANOSECONDS.convert(5L, TimeUnit.MINUTES);
while (System.nanoTicks() < endTime){
// do whatever
}
像System.currentTimeMillis()
其他方法,因爲它們依賴於計算機的日期/時間。
- 1. 循環等待5分鐘後再次執行
- 2. 讓程序運行5分鐘
- 3. 交友cron運行頁,每5分鐘
- 4. bash腳本運行5分鐘
- 5. 5分鐘運行腳本一次(Linux)
- 6. 如何使用Javascript以15分鐘的間隔運行循環
- 7. 如何循環和腳本運行,每4分鐘
- 8. 如何提高每運行n分鐘的循環的性能
- 9. 如何循環分鐘?
- 10. 一分鐘while循環
- 11. 添加分鐘while循環
- 12. 如何每5秒鐘運行一次shell腳本2分鐘?
- 13. 在主動畫循環中執行另一個循環5秒鐘?
- 14. Python:每秒運行一次循環並觸發5秒鐘功能
- 15. 如何讓cron每分鐘運行一次「N」分鐘,其中n%5 == 1?
- 16. 運行循環
- 17. 時間beetween + 5/-5分鐘
- 18. 加5分鐘差
- 19. 最大5分鐘
- 20. crontab每5分鐘
- 21. javascript循環檢查每15分鐘
- 22. 調用for循環每隔1分鐘
- 23. 循環內增加時間15分鐘
- 24. 循環cx_Oracle光標停頓幾分鐘
- 25. 每x分鐘PHP/SQL循環項目
- 26. 1分鐘後停止setTimeout。循環
- 27. javascript在循環中添加分鐘
- 28. 循環大約需要10分鐘vb
- 29. For循環遞增時間45分鐘
- 30. 爲每個分號運行循環
http://stackoverflow.com/questions/2550536/java-loop-for-a-certain-duration – 2010-09-22 10:19:00
謝謝我正在尋找。 – sjain 2010-09-22 10:23:18