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

标签 java multithreading inheritance interface

<分区>

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

  1. 实现Runable
  2. 扩展线程

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

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

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

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

最佳答案

  • 扩展线程:

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

  • 实现 Runnable:

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

还有一点要注意,因为在 Java 中您只能扩展一个类,如果您扩展线程,则不能扩展另一个类。如果您选择实现 Runnable,那么您可以扩展类。

关于java - 为什么在java中有两种使用线程的方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17311842/

相关文章:

inheritance - 你如何将 beforeInterceptors 链接在一起?

c++ - 类(class)传承与友元项目

java - Java Comparator接口(interface)的使用 - 对文件进行排序

java - 关于读写锁的查询

c++ - 字符串分配中的代码转储

java - 在 Thread.join() 之前调用 Thread.interrupt() 会导致 join() 立即抛出 InterruptedException 吗?

c# - 从抽象父类调用泛型列表上的方法

java - JBoss 监控/分析

java - J2EE认证后如何重定向Web表单认证

java - Intellij 警告 : Return value of the method is never used