我试图找出扩展Thread类的可能的优点是什么?
这是我描述的另一个问题的一部分:在Java中有两种创建线程的方法
如此处所述,使用可运行接口有许多好处。我的问题是从Thread类扩展的优点是什么?我想到的唯一好处是可以从Thread类扩展,并且可以称其为ThreadExtended类。然后,他/她可以在ThreadExtended中添加更多功能(我不知道这可能是什么),然后当他/她想要创建线程时,而不是从Thread类扩展,而是从ThreadExtended扩展。
使用Thread类代替Runnable接口有什么好处吗?您是否知道从Thread类扩展的任何类,然后要求用户从这些类扩展,如果他们希望具有多线程功能?
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();
}
}
很少有令人信服的理由来扩展Thread类。我可以想象,在大多数情况下,您最终只会将所有“执行某些操作”逻辑扔到run方法中。
您绝对应该坚持实施Runnable。通过选择扩展Thread,您正在创建一个类层次结构,该类层次结构可能是荒谬的,并且将来会限制您用于重构事物的选项。通过选择实现Runnable,您不需要实现者的血统,而且可以使用诸如ExecutorService之类的强大html" target="_blank">抽象来抽象化运行代码块的细节。最后,宁愿实现接口而不是扩展类也是一个好习惯!
我试图找出扩展Thread类的可能优势是什么? null
但是现在,我希望这些接口实现也可用于扩展,例如。 我如何设置我的课程来实现这一点?(或者,反对这样做的固有缺陷或代码气味是什么?)
问题内容: Java 线程本身实现了Java !并且根据Internet上的大多数专家的说法,首选Runnable而不是Extended Thread!即使我们没有Thread类也无法在线程意义上使用利用Runnable! 那么为什么我们宁愿实现而不是扩展,因为在两种情况下实际线程都是通过调用已实现的方法(即或)来声明的,尽管在我们不是仅通过重写方法来真正“扩展”功能的情况下? 如果我感到困惑,我
我正在使用泰坦尼克号数据集。为了可视化数据分布,我使用seaborn绘图方法。但我无法理解的参数及其最终输出。我想知道下面几行中使用的参数(参数)的用法,特别是和和的用法。 我已经在留档中搜索了并上网,但没有写清楚。
扩展是可定制化浏览体验的小程序,它们使用户可以根据个人需要或者偏好定制 Chrome 的功能和行为。它们基于 Web 技术(例如 HTML,JavaScript 和 CSS)构建。 扩展必须满足狭义定义且易于理解的单一目的(译者注:功能简单易懂化)。一个扩展可以包括多个组件和一系列功能,只要所有的内容都有助于实现共同的目标。 用户交互界面应尽量小且有意图。他们的范围从简单的图标,如右侧显示的 Go