Thread.sleep() 是让当前线程休眠指定毫秒数而不占用 CPU 的方法,需处理 InterruptedException,仅暂停当前线程且不释放锁,实际时长可能略长于指定值。

在 Java 中,Thread.sleep() 是让当前线程暂停执行最直接的方式。它会让线程进入“休眠”状态,不占用 CPU 资源,指定时间后自动恢复运行。
基本用法:传入毫秒数
调用 Thread.sleep(long millis) 方法,参数单位是毫秒(ms)。例如:
-
Thread.sleep(1000);—— 暂停 1 秒 -
Thread.sleep(500);—— 暂停 0.5 秒
注意处理 InterruptedException
该方法声明抛出 InterruptedException,必须显式处理。常见做法是捕获并选择是否重新中断:
- 简单忽略(不推荐):
catch (InterruptedException e) { e.printStackTrace(); } - 恢复中断状态(推荐):
catch (InterruptedException e) { Thread.currentThread().interrupt(); }
这样能保证上层代码仍可感知线程被中断的意图。
Java Maven 项目审查工作流的通用输入处理。当 Java Maven 项目以 ZIP压缩包或 GitLab 仓库 URL 形式提供且需要...时使用。
立即学习“Java免费学习笔记(深入)”;
不能保证精确暂停时长
Thread.sleep() 是“至少暂停”指定时间,实际唤醒可能稍有延迟,受操作系统调度精度影响。它不适用于高精度定时场景(如实时系统),但对 UI 延迟、轮询间隔、模拟耗时操作等足够可靠。
只影响当前线程
调用它不会阻塞其他线程,也不会释放已持有的锁(比如 synchronized 锁或 ReentrantLock)。这点和 wait() 不同——wait() 必须在同步块中调用且会释放锁。

















