java中sleep延迟的用法
时间: 2024-12-30 09:10:33 浏览: 5
### Java 中 `sleep` 方法的使用
#### 3.1 基本的 `sleep` 使用
在 Java 中,`sleep` 方法用于使当前正在执行的线程暂停指定的时间。下面是一个简单的例子展示了如何让线程休眠两秒钟:
```java
public class BasicSleepExample {
public static void main(String[] args) {
System.out.println("Thread is going to sleep for 2 seconds.");
try {
Thread.sleep(2000); // Sleep for 2 seconds
} catch (InterruptedException e) {
System.out.println("Thread was interrupted during sleep.");
e.printStackTrace();
}
System.out.println("Thread has woken up.");
}
}
```
这段代码会打印一条消息表示线程即将进入睡眠状态,在等待了大约两秒之后再继续执行并打印另一条消息表明线程已经醒来[^1]。
#### 3.2 关于 `sleep()` 的重要特性
值得注意的是,尽管看起来像是针对特定线程的操作,实际上 `sleep()` 是一个静态方法;因此当在一个给定的对象上调用此方法时,并不是那个对象对应的线程会被挂起——而是调用了这个方法的那个线程将会被阻塞。这意味着无论在哪一部分程序逻辑里触发了 `sleep()` 调用,都是当前运行中的那一线程受到影响而不是其他任何线程[^2]。
#### 3.3 测量实际休眠时间
为了更精确地控制或监控线程的实际休眠持续时间,可以利用 `System.currentTimeMillis()` 函数来获取毫秒级的时间戳。这里有一个简单的方法用来展示这一点:
```java
long start = System.currentTimeMillis();
try {
Thread.sleep(2000);
} catch (InterruptedException ie) {
// Handle exception...
}
System.out.println("Slept for " + (System.currentTimeMillis() - start) + " milliseconds");
```
上述代码片段计算出了从开始到结束之间经过了多少毫秒数,并将其作为字符串输出到了标准输出流中[^4]。
阅读全文