java如何延时
在Java中实现延时的几种方法
使用Thread.sleep()
Thread.sleep()方法可以让当前线程暂停执行指定的毫秒数。这是最常用的延时方法之一。
try {
Thread.sleep(1000); // 延时1秒
} catch (InterruptedException e) {
e.printStackTrace();
}
使用TimeUnit
TimeUnit提供了更可读的方式来指定延时时间单位。

try {
TimeUnit.SECONDS.sleep(1); // 延时1秒
} catch (InterruptedException e) {
e.printStackTrace();
}
使用ScheduledExecutorService
对于需要周期性执行的任务,可以使用ScheduledExecutorService。

ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
executor.schedule(() -> {
System.out.println("延时执行");
}, 1, TimeUnit.SECONDS); // 延时1秒后执行
使用Timer和TimerTask
Timer类可以安排任务在指定延时后执行。
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
System.out.println("延时执行");
}
}, 1000); // 延时1秒
使用CompletableFuture.delayedExecutor
Java 9及以上版本支持CompletableFuture的delayedExecutor方法。
CompletableFuture.runAsync(() -> {
System.out.println("延时执行");
}, CompletableFuture.delayedExecutor(1, TimeUnit.SECONDS));
注意事项
- Thread.sleep()会阻塞当前线程,不适用于需要保持响应的场景。
- 使用ExecutorService或Timer时,注意及时关闭资源以避免内存泄漏。
- 多线程环境下需考虑线程安全和同步问题。






