java如何休息
在Java中实现程序暂停或延迟执行
Java提供了多种方式实现线程暂停或延迟执行,以下是常见方法:
Thread.sleep()方法
使用Thread.sleep()让当前线程暂停指定毫秒数:
try {
Thread.sleep(1000); // 暂停1秒
} catch (InterruptedException e) {
Thread.currentThread().interrupt(); // 恢复中断状态
}
TimeUnit类
更可读的时间单位控制:
import java.util.concurrent.TimeUnit;
try {
TimeUnit.SECONDS.sleep(1); // 暂停1秒
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
Object.wait()
配合同步块使用,会释放对象锁:
synchronized (lockObject) {
try {
lockObject.wait(1000); // 最多等待1秒
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
ScheduledExecutorService
适合周期性任务调度:
ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
executor.schedule(() -> {
// 延迟执行代码
}, 1, TimeUnit.SECONDS); // 延迟1秒执行
LockSupport.parkNanos()
底层并发工具类方法:

LockSupport.parkNanos(TimeUnit.SECONDS.toNanos(1)); // 暂停1秒
注意事项
- 使用
sleep()和wait()必须处理InterruptedException - GUI程序中避免在主线程使用阻塞方法
- 长时间暂停考虑使用定时任务代替线程阻塞
wait()必须配合synchronized使用并会释放锁






