每分钟Java循环


问题内容

我想在Java中编写一个会启动并运行的循环,如下所示:

while (!x){
    //wait one minute or two

    //execute code
}

我要这样做,以免占用系统资源。代码中实际发生的事情是,它进入一个网站并检查是否已完成某件事,如果未完成,则应等待一分钟,直到再次检查为止,然后再继续检查。反正他们在Java中执行此操作吗?


问题答案:

使用Thread.sleep(long millis)

根据系统计时器和调度程序的精度和准确性,使当前正在执行的线程进入休眠状态(暂时停止执行)达指定的毫秒数。该线程不会失去任何监视器的所有权。

一分钟将是(60*1000) = 60000毫秒。


例如,此循环将每5秒打印一次当前时间:

    try {
        while (true) {
            System.out.println(new Date());
            Thread.sleep(5 * 1000);
        }
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

如果您的睡眠时间对于来说太大int,请显式计算long(例如1000L)。