如何将一个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