可能重复:
Java:“实现可运行”与“扩展线程”
Java 提供了两个选项来创建 Thread 类,即通过实现 Runnable 或通过扩展 Thread 类。
我知道实现 Runnable 可能有很多原因,但不确定在哪里扩展 Thread 类以创建自己的 Thread 类?
您能否为我提供扩展 Thread 似乎可行或更好的选择或有利的场景...
线程上有一个 问题,但没有回答我的问题
可能重复:
Java:“实现可运行”与“扩展线程”
Java 提供了两个选项来创建 Thread 类,即通过实现 Runnable 或通过扩展 Thread 类。
我知道实现 Runnable 可能有很多原因,但不确定在哪里扩展 Thread 类以创建自己的 Thread 类?
您能否为我提供扩展 Thread 似乎可行或更好的选择或有利的场景...
线程上有一个 问题,但没有回答我的问题
几乎没有理由扩展 Thread,基本上你想要扩展线程的唯一原因是你是否要覆盖 run() 以外的东西,这通常是一个坏主意。扩展 Thread 不太常见的原因是因为该类不能扩展其他任何东西,并且如果您只是覆盖 run() 方法,那么扩展 Thread 而不实现 Runnable 将毫无意义。
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
.