Java多线程实现接口Runnable和继承Thread区别(建议使用Runnable)

文章来源:http://blog.sina.com.cn/s/blog_9cbb6a210102ux44.html

看别人帖子,觉得不错,自己整理标记下http://blog.csdn.net/litaoshoujiao/article/details/8542859

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

 

首先建立多线程,

extend Thread类:

Java多线程实现接口Runnable和继承Thread区别(建议使用Runnable)_第1张图片

实现Runnable接口:
Java多线程实现接口Runnable和继承Thread区别(建议使用Runnable)_第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,thread,多线程,Runnable)