java如何暂停sleep
Java 中暂停线程的方法
Java 提供了多种方式暂停线程执行,最常用的是 Thread.sleep() 方法。

使用 Thread.sleep()
Thread.sleep() 是暂停当前线程执行的静态方法,参数为毫秒数。调用时需处理 InterruptedException。

try {
Thread.sleep(1000); // 暂停1秒
} catch (InterruptedException e) {
Thread.currentThread().interrupt(); // 重新设置中断标志
System.err.println("Sleep interrupted");
}
使用 TimeUnit
TimeUnit 提供了更可读的时间单位转换,底层仍调用 Thread.sleep()。
try {
TimeUnit.SECONDS.sleep(1); // 暂停1秒
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
System.err.println("Sleep interrupted");
}
注意事项
- 暂停期间线程不会释放锁,可能导致死锁。
- 长时间暂停应考虑使用
ScheduledExecutorService替代。 - 线程中断时应合理处理中断异常,避免忽略中断请求。
替代方案
对于周期性任务,推荐使用 ScheduledExecutorService:
ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
executor.schedule(() -> {
System.out.println("Task executed after delay");
}, 1, TimeUnit.SECONDS);
这种方式更灵活且能更好地管理线程生命周期。






