20秒后从while循环中断

时间:2019-04-07 05:22:56

标签: java while-loop main

经过20秒后如何从while循环中中断?我想避免使用线程。

while (var) {
    // ...do something

    if (20secondsIsPassed) {
        break;
    }
}

2 个答案:

答案 0 :(得分:4)

如果您的if循环中有while,它会检查经过的时间,那么您将不会有20秒,但至少是 20秒。最简单的方法是这样的:

LocalDateTime then = LocalDateTime.now();
while (true) {
    // logic
    if (ChronoUnit.SECONDS.between(then, LocalDateTime.now()) >= 20) break;
}

答案 1 :(得分:3)

只需知道每秒代表1000毫秒,就可以进行以下计算:

long seconds = System.currentTimeMillis();
    while (var && (seconds + (20 * 1000) > System.currentTimeMillis())) {
        // ...do something
    }