如何將一個while循環延遲到1秒的時間間隔,而不會減慢它運行到一秒鐘延遲的整個代碼/計算機(只是一個小循環)。Java延遲/等待
回答
Thread.sleep(1000); // do nothing for 1000 miliseconds (1 second)
這不會暫停整個腳本/電腦嗎? – 2011-12-21 07:06:06
這隻會暫停該代碼運行的特定線程。你的電腦不會被凍結 – 2011-12-21 07:07:45
看來你的循環運行在主線程,如果你在該線程做sleep
將暫停應用程序(因爲只有一個線程已暫停),要克服這一點,你可以把新的Thread
這個代碼,平行
try{
Thread.sleep(1000);
}catch(InterruptedException ex){
//do stuff
}
這個作品完美 – ERJAN 2014-01-04 07:51:23
運行作爲Jigar曾表示,你可以使用另一個線程來獨立於其他線程的執行,可運行工作,睡眠等。 java.util.Timer
類也可以幫助你,因爲它可以爲你執行定期任務,而無需進入多線程編程。
我簡單的方法來延遲一個循環。
我已經把代碼放在這裏後,沒有遵循stackoverflow的標準。
//1st way: Thread.sleep : Less efficient compared to 2nd
try {
while (true) {//Or any Loops
//Do Something
Thread.sleep(sleeptime);//Sample: Thread.sleep(1000); 1 second sleep
}
} catch (InterruptedException ex) {
//SomeFishCatching
}
//================================== Thread.sleep
//2nd way: Object lock waiting = Most efficient due to Object level Sync.
Object obj = new Object();
try {
synchronized (obj) {
while (true) {//Or any Loops
//Do Something
obj.wait(sleeptime);//Sample obj.wait(1000); 1 second sleep
}
}
} catch (InterruptedException ex) {
//SomeFishCatching
}
//=============================== Object lock waiting
//3rd way: Loop waiting = less efficient but most accurate than the two.
long expectedtime = System.currentTimeMillis();
while (true) {//Or any Loops
while(System.currentTimeMillis() < expectedtime){
//Empty Loop
}
expectedtime += sleeptime;//Sample expectedtime += 1000; 1 second sleep
//Do Something
}
//===================================== Loop waiting
我喜歡第三種方式,因爲它可以禁止整個cpu核心,並且沒有人會稱此爲代碼異味。 – Tom 2015-11-05 16:36:50
- 1. 需要延遲等待GPS
- 2. Sahi腳本等待或時間延遲
- 3. 延遲或等待 - 爲聲明
- 4. jQuery SlideDown()不等待動畫的延遲
- 5. JQuery等待多個延遲來解決
- 6. 等待和延遲功能的格式
- 7. 等待存儲過程中的延遲
- 8. 等待延遲或使用計時器
- 9. Java-如何在特定塊中延遲/等待
- 10. 需要類似等待或延遲在日冕sdk
- 11. jQuery的延遲 - 等待,直到兩個電話完全
- 12. jQuery當沒有等待所有延遲解決
- 13. Wampserver:爲php/mysql長時間「等待」延遲
- 14. 計算機在Android 2.2中轉動,等待和延遲
- 15. C++中的點雲庫(PCL)等待/延遲/休眠功能
- 16. 如何使用的kbhit()的延遲,而無需等待
- 17. JavaScript如何停止等待延遲完成?
- 18. Python的事件::等待與超時延遲給出
- 19. 在didFinishLaunchingWithOptions中等待服務操作並延遲調用didRegisterForRemoteNotificationsWithDeviceToken
- 20. jQuery的:等待/延遲1秒而不執行代碼
- 21. 延遲或等待3s然後刪除班級
- 22. 爲什麼要等待線程延遲更新擺動組件?
- 23. 如何等待低延遲的線程去?
- 24. 在代碼c中插入延遲/等待#
- 25. Laravel 5.2延遲作業,立即啓動而不是等待
- 26. jquery addClass - 等待,延遲,速度,超時或其他
- 27. 如何檢查HTTP請求延遲/等待時間的原因?
- 28. Linux核心延遲,低於jiffies,沒有忙等待
- 29. 使python程序等待,直到扭曲延遲返回值
- 30. 使用TypeScript不等待的延遲javascript/jQuery搜索
_without拖慢整個code_闡述這個 – 2011-12-21 07:05:10
@JigarJoshi我想在我的Minecraft插件間隔1秒延遲這個while循環。但大多數等待方法會暫停整個服務器達到設定的時間,而不僅僅是循環 – 2011-12-21 07:08:15
,您希望執行while循環一段固定的時間,然後再以固定的延遲時間執行。 – 2011-12-21 07:08:58