如何将一个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. 等待延迟或使用计时器
- 3. Sahi脚本等待或时间延迟
- 4. 等待和延迟功能的格式
- 5. 延迟或等待 - 为声明
- 6. Java-如何在特定块中延迟/等待
- 7. 使用TypeScript不等待的延迟javascript/jQuery搜索
- 8. Linux核心延迟,低于jiffies,没有忙等待
- 9. setTimeOut没有等待适当的延迟时间
- 10. 在代码c中插入延迟/等待#
- 11. Kivy on_release:延迟或等待.kv文件中的功能?
- 12. jQuery的延迟 - 等待,直到两个电话完全
- 13. jQuery的:等待/延迟1秒而不执行代码
- 14. 如何检查HTTP请求延迟/等待时间的原因?
- 15. Wampserver:为php/mysql长时间“等待”延迟
- 16. 如何等待低延迟的线程去?
- 17. 延迟或等待3s然后删除班级
- 18. 使python程序等待,直到扭曲延迟返回值
- 19. C++中的点云库(PCL)等待/延迟/休眠功能
- 20. 计算机在Android 2.2中转动,等待和延迟
- 21. 延迟等在磨床
- 22. 在java中延迟
- 23. Java PriorityQueue等待
- 24. Java:等待ActionEvent
- 25. SAPUI5等待延期对象//等待.done()函数
- 26. Java的短暂延迟
- 27. 延迟递归回溯java
- 28. 延迟一个java程序
- 29. 模拟Java中的延迟
- 30. 延迟对话框Java
_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