对于上述问题,我对简单语言的完美答案感到非常困惑。在哪种情况下更好,为什么。任何人都可以解释。
答案 0 :(得分:2)
Executor课程以Runnable
为对话,仅此一点,我赞成实施Runnable
界面。你没有把你的代码隐含地绑在一个线程中,并且框架可以以他们喜欢的方式处理Runnables
。
答案 1 :(得分:1)
使用以下简单规则:
1)如果一个类的主要目的是一个线程,那么继承Thread
2)如果一个类的主要目的不是一个线程(例如:一个GUI组件), 实现Runnable
3)当线程类已经被另一个类
分类时,使用Runnable答案 2 :(得分:1)
由于JAVA中的单一继承功能,扩展Thread class
会使您的班级无法extend
其他班级。但是,这将为您提供更简单的代码结构。如果实现runnable,则可以获得更好的面向对象设计和一致性,并避免单继承问题。
在开发线程类时,如果它没有任何超类,则转到Thread类,否则转到Runnable接口并实现其中的方法。这是基本的拇指规则。