通过扩展Thread类或实现Runnable来创建线程更合适?

gir*_*iri 7 java multithreading

我想知道哪个更适合通过扩展线程类或通过实现Runnable接口来创建线程.为什么?

谢谢..

And*_*ker 9

您应该创建它Runnable,然后将其添加到任何现有的线程池类.您将工作单元封装在新类中,然后使用该线程运行它.

只有Thread在对线程类本身做某事时才会扩展,例如使用新功能扩展它.我怀疑是这样的.

另一种方法是创建一个新的类,它是一个线程组合和你的自定义逻辑,例如它有一个Thread内部和它自己的'execute()'方法,它调度线程并添加(this)作为工作项,完全隐藏在外面...但在这种情况下,你Runnable无论如何都会创建你的类,只是提供一种方便的方法,使它更容易添加到一个线程.


Met*_*002 0

可运行,因为您没有向 Thread 类添加专门的行为 - 您只是将逻辑标记为能够作为其自己的线程运行。