Discuz! BBS

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 350|回复: 0

Thread.sleep(10000); // 录音10秒 这个Thread它到底是哪个Thread?

[复制链接]

465

主题

640

帖子

3734

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3734
发表于 2025-11-21 09:51:02 | 显示全部楼层 |阅读模式
Thread.sleep(10000); // 录音10秒 这个Thread请说明它到底是哪个Thread,为什么用类名而不用实例名?

关于这行代码中的 `Thread.sleep(10000)`,解释如下:

## Thread.sleep() 是静态方法

- `Thread.sleep()` 是 `Thread` 类的**静态方法**
- 静态方法属于类本身,而不是类的实例
- 因此可以直接通过类名调用:`Thread.sleep(10000)`

## 当前执行线程

这段代码运行在 `thread1` 这个线程中:
```java
Thread thread1 = new Thread(() -> {
    try {
        Thread.sleep(10000);  // 这里会暂停 thread1 线程10秒
        // ...
    } catch (Exception e) {
        // ...
    }
});
thread1.start();
```


所以 `Thread.sleep(10000)` 实际上会让 `thread1` 线程暂停10秒钟。

## 为什么不使用实例名?

因为:
1. `sleep()` 方法不需要特定线程实例就可以调用
2. 它总是让**当前正在执行的线程**进入睡眠状态
3. 这是Java标准库的设计方式

因此写成 `thread1.sleep(10000)` 是不正确的,也是不必要的。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2026-2-4 10:52 , Processed in 0.012421 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表