Runnable 和Thread 用哪个好?
时间: 2024-09-18 21:05:48 浏览: 30
详解Java中Thread 和Runnable区别
5星 · 资源好评率100%
`Runnable` 和 `Thread` 都是用来在 Java 中实现并发的两个关键接口或类。选择哪一个取决于具体的场景:
1. 如果你需要实现线程并希望将任务封装在一个可以传递给 `Thread` 对象的独立对象中,通常推荐使用 `Runnable` 接口。这样你可以创建一个新的 `Thread` 实例,并传入一个实现了 `Runnable` 的实例作为目标对象。这样做可以使你的代码更简洁,因为你可以将业务逻辑放在单独的类中。
```java
class MyTask implements Runnable {
// 线程执行的任务
public void run() {
//...
}
}
Thread thread = new Thread(new MyTask());
```
2. 如果你想要直接操作线程生命周期的属性,比如设置优先级、获取状态等,那么使用 `Thread` 类更为方便,因为它提供了更多的控制选项。但是,`Thread` 实例需要显式地调用 `start()` 方法来启动线程,而不是像 `Runnable` 那样通过构造函数自动启动。
```java
Thread thread = new Thread();
thread.start(); // 需要手动调用 start()
```
总的来说,如果追求简洁性和职责分离,使用 `Runnable` 更佳;如果需要更复杂的线程管理,就选择 `Thread`。
阅读全文