Java 多线程实现接口Runnable和继承Thread区别 (2

时间:2023-02-08 17:32:34

Java 多线程实现接口Runnable和继承Thread区别

  (2014-07-15 21:42:35)

目前Java中实现多线程可通过实现Runnable接口或者继承Thread,他们之间存在不少区别,建议使用Runnable;

 

首先建立多线程,

extend Thread类:

Java 多线程实现接口Runnable和继承Thread区别  (2

实现Runnable接口:
Java 多线程实现接口Runnable和继承Thread区别  (2
测试程序:

Java 多线程实现接口Runnable和继承Thread区别  (2

区别与联系:

1, 一个类只能继承一个父类,存在局限;一个类可以实现多个接口

2, 在实现Runable接口的时候调用Thread的Thread(Runnable run)或者Thread(Runnable run ,String name)构造方法创建进程时,使用同一个Runnable实例,如上程序中使用的都是rt,则建立的多线程的实例变量也是共享的;

但是通过继承Thread类是不能用一个实例建立多个线程;

故而实现Runnable接口适合于资源共享;

当然,继承Thread类也能够共享变量,能共享Thread类的static变量;

3, Runnable接口和Thread之间的联系:

public class Thread extends Object implements Runnable

可以看出Thread类也是Runnable接口的子类;

下面大家可以直接去看Thread的源代码。Java 多线程实现接口Runnable和继承Thread区别  (2