如果要暂停,请使用:java.util.concurrent.TimeUnit
TimeUnit.SECONDS.sleep(1);
睡一秒钟或
TimeUnit.MINUTES.sleep(1);
睡一分钟。
由于这是一个循环,这就提出了一个固有的问题 - 漂移。每次你运行代码然后睡觉时,你都会从运行中漂移一点点,比如说,每一秒。如果这是一个问题,则不要使用 .sleep
此外,在控制方面不是很灵活。sleep
对于每秒或以一秒延迟运行一个任务,我强烈建议使用 ScheduledExecutorService
和 scheduleAtFixedRate
或 scheduleWithFixedDelay
。
例如,要每秒运行该方法 (Java 8):myTask
public static void main(String[] args) {
final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
executorService.scheduleAtFixedRate(App::myTask, 0, 1, TimeUnit.SECONDS);
}
private static void myTask() {
System.out.println("Running");
}
在Java 7中:
public static void main(String[] args) {
final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
executorService.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
myTask();
}
}, 0, 1, TimeUnit.SECONDS);
}
private static void myTask() {
System.out.println("Running");
}