哪个更好:实现Runnable接口与扩展Thread类

时间:2011-11-02 09:14:03

标签: java

  

可能重复:
  Implementing Runnable vs. extending Thread

对于上述问题,我对简单语言的完美答案感到非常困惑。在哪种情况下更好,为什么。任何人都可以解释。

3 个答案:

答案 0 :(得分:2)

Executor课程以Runnable为对话,仅此一点,我赞成实施Runnable界面。你没有把你的代码隐含地绑在一个线程中,并且框架可以以他们喜欢的方式处理Runnables

答案 1 :(得分:1)

使用以下简单规则:

1)如果一个类的主要目的是一个线程,那么继承Thread

2)如果一个类的主要目的不是一个线程(例如:一个GUI组件), 实现Runnable

3)当线程类已经被另一个类

分类时,使用Runnable

答案 2 :(得分:1)

由于JAVA中的单一继承功能,扩展Thread class会使您的班级无法extend其他班级。但是,这将为您提供更简单的代码结构。如果实现runnable,则可以获得更好的面向对象设计和一致性,并避免单继承问题。 在开发线程类时,如果它没有任何超类,则转到Thread类,否则转到Runnable接口并实现其中的方法。这是基本的拇指规则。