7

可能重复:
Java:“实现可运行”与“扩展线程”

Java 提供了两个选项来创建 Thread 类,即通过实现 Runnable 或通过扩展 Thread 类。

我知道实现 Runnable 可能有很多原因,但不确定在哪里扩展 Thread 类以创建自己的 Thread 类?

您能否为我提供扩展 Thread 似乎可行或更好的选择或有利的场景...

线程上有一个 问题,但没有回答我的问题

4

2 回答 2

2

几乎没有理由扩展 Thread,基本上你想要扩展线程的唯一原因是你是否要覆盖 run() 以外的东西,这通常是一个坏主意。扩展 Thread 不太常见的原因是因为该类不能扩展其他任何东西,并且如果您只是覆盖 run() 方法,那么扩展 Thread 而不实现 Runnable 将毫无意义。

于 2012-06-17T18:27:41.370 回答
0

Runnable是一个只有一个方法的接口run(),需要由实现该接口的类来实现。

例如

public class MyRunnable implements Runnable {
    @Override
    public void run() {
        //...
    }
}

MyRunnable不是一个Thread也不能仅仅通过使用该类来创建一个新线程。所以,说起来也没什么意义——

Java 提供了两个选项来创建 Thread 类,即通过实现 Runnable ...

您可以扩展Thread课程,但就像@John 所说的那样没有任何意义。

但是如果你想在一个新线程中执行一些代码,那么下面是最好的方法 -

MyRunnable r = new MyRunnable();
Thread t = new Thread(r);
t.start();

t.start()方法启动一个新线程并调用run()方法r(它是MyRunnable.

于 2012-06-17T19:33:23.820 回答