在Java中使用Runnable和Thread创建线程有什么区别

在java语言中,众所周知,创建线程有两种方式。
一个使用 Runnable 接口,另一个通过扩展 Thread 类。

更多: zhilu jiaocheng

使用Runnable 与 Thread 创建线程的区别

  • 实现 Runnable是首选方法。在这里,我们并没有真正专门化或者修改线程的行为。你只是给线程一些运行的东西。这意味着组合是更好的方法。
  • Java只支持单继承,所以只能扩展一个类。
  • 实例化接口可以更清晰地分离代码和线程的实现。
  • 实现 Runnable让你的类更加灵活。如果我们扩展Thread,那么我们正在执行的操作将始终在一个线程中。但是,如果我们实现了 Runnable,则不必如此。我们可以在线程中运行它,或者将它传递给某种执行程序服务,或者只是将它作为单线程应用程序中的任务传递。

使用Runnable接口 和使用 Thread类创建线程

Runnable接口

Java程序通过实现Runnable接口来创建线程。

public class DemoRunnable implements Runnable {
    public void run() {
    	//Code
    }
}
// 调用 "new Thread(new demoRunnable()).start()" 就可以启动新线程

Thread类

Java程序通过扩展Thread类来创建线程。

public class DemoThread extends Thread {
    public DemoThread() {
    	super("DemoThread");
    }
    public void run() {
    	//Code
    }
}
// 调用"new demoThread().start()" 启动新线程
日期:2020-09-17 00:09:38 来源:oir作者:oir