美文网首页JAVA基础(未看)Android知识点和文章分享
实现Runnable接口和继承Thread类之间的区别

实现Runnable接口和继承Thread类之间的区别

作者: 賈小強 | 来源:发表于2017-06-16 22:57 被阅读72次

简书 賈小強
转载请注明原创出处,谢谢!

在Java语言中,我们都知道,有两种创建线程的方式,一中是使用Runnable接口,另一种是使用Thread类。

public class DemoRunnable implements Runnable {
    public void run() {
        //Code
    }
}
//with a "new Thread(demoRunnable).start()" call

public class DemoThread extends Thread {
    public DemoThread() {
        super("DemoThread");
    }
    public void run() {
        //Code
    }
}
//with a "demoThread.start()" call

已经有大量的辩论,哪一个更好。嗯,我也试着找出答案,下面是我的研究:

  1. 实现Runnable接口是首选方法。在这里,您并不需要修改Thread类的行为。你只是给线程一些东西运行。这意味着组合是最好的方式。
  2. Java只支持单一继承,所以你只能继承一个类。
  3. 用接口的方式将你的代码和线程实现分离,更加清晰。
  4. 实现Runnable使你的类更灵活。如果您继承Thread类,那么您所做的操作总是处于一个线程中。然而如果你采用实现Runnable接口,您可以在一个线程中运行它,或者将它传递给某种执行器(executor),或者只是将它作为一个单线程应用程序中的任务传递给它。
  5. 通过继承Thread类,每个线程都有一个相关联的唯一对象,而实现Runnable接口,多线程可以共享同一个Runnable实例。
  6. 如果你工作在JDK 4或更低,那么有一个bug
    它在Java 1.5中被修复,但Sun公司不打算修复1.4中的bug。

Happy Learning !!

相关文章

  • BAT 第十章 java高级知识点 多线程

    Thread/Runnable的区别. 继承Thread类 实现Runnable接口, 弥补java语言的单继承的...

  • Java基础之Java线程

    1. 线程的使用 继承Thread类或者实现Runnable接口 Thread 和Runnable的区别 克服ja...

  • java-线程

    线程的状态与调度 继承Thread类和实现Runnable接口区别 实现Runnable接口的类可以多线程操控同一...

  • 多线程(一)-线程基础

    一、线程创建 继承Thread类,重写run方法; 实现Runnable接口; 实现Callable接口; 区别:...

  • Java多线程系列一——Java实现线程方法

    Java实现线程的两种方法 继承Thread类 实现Runnable接口 它们之间的区别如下: 1)Java的类为...

  • 多线程

    java中实现多线程操作有两种方法:继承Thread类和实现Runnable接口 一、继承Thread类 //继承...

  • Java多线程理解1

    Java实现多线程的两种方式分别是继承Thread类和实现Runnable接口。 继承Thread类 实现Runn...

  • 「Java基础」线程创建

    1. 继承 Thread 类: 2. 实现 Runnable 接口 常用简化模式: 不同创建线程区别: 继承方式 ...

  • 线程实现的方法,sleep和wait的区别

    java提供继承Thread类和实现runnable接口这两种方式来实现线程Java中sleep和wait的区别:...

  • 多线程

    实现方式 1. 继承Thread类2. 实现Runnable接口 两种方法的区别:Thread其实也是实现了Run...

网友评论

    本文标题:实现Runnable接口和继承Thread类之间的区别

    本文链接:https://www.haomeiwen.com/subject/rtfvqxtx.html