当前位置: 首页 > 知识库问答 >
问题:

扩展Thread类的主要优点是什么(或何时扩展Thread而不是实现runnable)

步博艺
2023-03-14

我试图找出扩展Thread类的可能优势是什么?

    null
    public class ThreadExtended extends Thread{
    //override some functions || add more functionality to Thread class
    }

    public class MyThread extends ThreadExtended{
     public void run()
    {
     for(int i=0;i<10;i++)
        {
          System.out.println("Using ThreadExtended instead of Thread directly");
        }
    }

    public static void main(String args[])
    {
    MyThread myThread = new MyThread();
    myThread.start();
    }
    }

共有1个答案

田博易
2023-03-14

很少有令人信服的理由来扩展Thread类。我可以想象,在大多数情况下,您最终会把所有的“做一些事情”逻辑都扔到run方法中。

您绝对应该坚持实现Runnable。通过选择扩展Thread,您正在创建一个类层次结构,这可能是荒谬的,最终将限制您在未来重构事物的选择。通过选择实现Runnable,您不需要对实现者的沿袭有什么要求,您可以使用强大的抽象,如ExecutorService来抽象运行代码块的细节。最后,宁愿实现一个接口而不是扩展一个类是一个很好的实践!

 类似资料:
  • 问题内容: 我试图找出扩展Thread类的可能的优点是什么? 这是我描述的另一个问题的一部分:在Java中有两种创建线程的方法 从Thread类扩展 实现可运行的接口 如此处所述,使用可运行接口有许多好处。我的问题是从Thread类扩展的优点是什么?我想到的唯一好处是可以从Thread类扩展,并且可以称其为ThreadExtended类。然后,他/她可以在ThreadExtended中添加更多功能

  • 扩展是可定制化浏览体验的小程序,它们使用户可以根据个人需要或者偏好定制 Chrome 的功能和行为。它们基于 Web 技术(例如 HTML,JavaScript 和 CSS)构建。 扩展必须满足狭义定义且易于理解的单一目的(译者注:功能简单易懂化)。一个扩展可以包括多个组件和一系列功能,只要所有的内容都有助于实现共同的目标。 用户交互界面应尽量小且有意图。他们的范围从简单的图标,如右侧显示的 Go

  • 问题内容: 我在python代码中发现了瓶颈,并与psycho等打交道。然后决定编写ac / c ++扩展以提高性能。 借助swig,您几乎不需要关心参数等。一切正常。 现在我的问题是:swig创建了一个很大的py文件,该文件在调用实际的.pyd或.so代码之前会执行很多“检查”和“ PySwigObject”。 你们中的任何人是否有经验,如果您手动编写此文件或让wig来做,是否可以获得更多性能。

  • 问题内容: 给定以下示例(将与匹配器结合使用): 这不能与以下内容的方法签名一起编译: 编译器错误消息是: 但是,如果我将方法签名更改为: 然后编译工作。 所以三个问题: 为什么当前版本完全不编译?尽管我在这里模糊地理解了协方差问题,但如果需要的话,我当然无法解释。 将方法更改为有什么缺点吗?如果这样做,还有其他情况会中断吗? 在中通用化方法有什么意义吗?该级似乎并不需要它,因为JUnit的调用方

  • 我正在使用泰坦尼克号数据集。为了可视化数据分布,我使用seaborn绘图方法。但我无法理解的参数及其最终输出。我想知道下面几行中使用的参数(参数)的用法,特别是和和的用法。 我已经在留档中搜索了并上网,但没有写清楚。