java程序如何延迟两秒
使用 Thread.sleep() 方法
Thread.sleep() 是 Java 中最简单的延迟方法,直接让当前线程暂停执行指定的毫秒数。
try {
Thread.sleep(2000); // 2000 毫秒 = 2 秒
} catch (InterruptedException e) {
e.printStackTrace(); // 处理中断异常
}
注意:Thread.sleep() 会抛出 InterruptedException,需捕获或声明抛出。

使用 ScheduledExecutorService
适用于需要更精确的定时或周期性任务,避免直接操作线程。
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
executor.schedule(() -> {
// 延迟后执行的代码
}, 2, TimeUnit.SECONDS); // 延迟 2 秒
executor.shutdown(); // 任务完成后关闭
优点:支持更复杂的调度,且线程池管理更高效。

使用 TimeUnit 简化时间单位
TimeUnit 是 java.util.concurrent 中的枚举类,可简化时间单位的转换。
try {
TimeUnit.SECONDS.sleep(2); // 直接指定秒单位
} catch (InterruptedException e) {
e.printStackTrace();
}
本质仍是调用 Thread.sleep(),但代码可读性更高。
注意事项
- 阻塞主线程:
Thread.sleep()会阻塞当前线程,若在 UI 线程(如 Android 主线程)中使用会导致界面卡顿。 - 替代方案:在 Android 开发中推荐使用
Handler.postDelayed()或协程(Kotlin)。 - 精度问题:
Thread.sleep()的精度依赖系统计时器,实际延迟可能有微小偏差。






