【发布时间】:2019-08-28 13:36:26
【问题描述】:
如何在 20 秒后中断 while 循环?我想避免使用线程。
while (var) {
// ...do something
if (20secondsIsPassed) {
break;
}
}
【问题讨论】:
-
简单的方法是使用
System.currentTimeMillis来测试系统时钟。 -
进入前先取一个时间,然后在每次迭代中取一个时间差,如果时间差超过20秒,退出while循环。
-
@StephenC 我认为
currentTimeMillis可以返回一个小于上一次调用的值(可能不太可能,但可能)取决于底层系统时钟,这就是为什么应该使用nanoTime来测量持续时间。 -
这应该是不可能的。但是,可以“调整”系统时钟。并且它是特定于操作系统的 1) 是否允许对给定时钟进行调整,以及 2) 应用程序是否会注意到这一点。
标签: java if-statement time while-loop jvm