什么时候应该在 Java 中扩展 Thread



我知道多线程的基础知识。此外,我提到了Jon Skeet先生的答案"实现Runnable"与"扩展线程"。

他说:

你并没有真正专注于线程的行为。你只是 给它一些东西来运行。(所以使用Runnable而不是Thread)

所以我的问题是:

在什么情况下,人们会专门处理线程?

什么时候应该在 Java 中扩展 Thread?

我希望得到带有示例和代码的答案。

谢谢!!

Runnable视为要执行的任务,将Thread视为执行器。如果要向执行器添加一些特定行为,例如,可能控制其生命周期,修改状态等,则应扩展Thread。派生自Thread的类示例,您可以在JDK(查看此处)Android SDK(查看此处)中找到。

一种可能的情况是
当你的类是类时,即在这种情况下有超类,你不能扩展线程,你必须实现 Runnable 接口 如果类不是子类,则可以扩展 Thread 类。

我能想到的一件事:如果你想有多个线程,默认情况下会有一个特定的名称或优先级,你可以扩展Thread

public class MyThread extends Thread {
    public MyThread() {
        super("MyThread");
        setPriority(Thread.MIN_PRIORITY);
    }
    @Override
    public void run() {
        // something
    }
}

或者,如果要执行与Thread对象本身相关的更多操作。通常,除了实现Runnable并使用将其作为参数的构造函数创建Thread之外,您不需要执行任何其他操作。

最新更新