为什么在java中有两种使用线程的方法?

TKu*_*mar 10 java inheritance multithreading interface

我知道有两种方法可以在java中使用线程:

  1. 实现Runable
  2. 扩展线程

我也知道实现 Runable比扩展Thread更好 .

但为什么有两种方式 - 为什么不只有一种?

如果实现Runnable是一种更好的方法,为什么还有其他选择呢?

只有一个选项会有什么问题?

Mar*_*oun 16

  • extends Thread:

    您的线程创建唯一对象并与之关联

  • implements Runnable:

    它与多个线程共享同一个对象

另外需要注意的是,既然你只能在Java中扩展一个类,那么extends Thread你就无法扩展另一个类.如果您选择implement Runnable,则可以扩展课程.


Ama*_*dan 7

从技术上讲,只有一种方法:实施Runnable.Thread顺便说一句,就是这样,所以扩展它你通常满足接口要求.