继承Thread和实现Runnable的区分

Posted Rhythm黎

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了继承Thread和实现Runnable的区分相关的知识,希望对你有一定的参考价值。

继承方式和实现接口方式  还是存在一定差异。比如售票,接口做 没有毛病,继承有点小问题 。暂时不明白 是哪里的问题=。      

 

方式一:

实现接口:new Thread(类的实例)。才可以点出开始方法。

currentThread():获取当前线程对象

我们利用单个Runnable实例r来创建了两个线程,那么这两个线程操作的其实都是实例r里面的属性和方法,所以能实现资源共享。

 

一个比较生动的比如:

Runnable实例r就像一个苹果,利用它创建的线程就像小虫子,咬的都是这个苹果。

 

那么,从上面可以看出来属性共享的范围:

只有用同一个Runnable实例创建的线程才有属性共享这个特性。

 

 

通过继承Thread来实现多线程:覆盖run方法。用start()方法创建线程并执行run方法。

Java中是单继承的,那么这么好的一个继承机会就给了它,是一个缺陷,java官方后来给出了一种实现接口的方法来实现多线程。就是实现Runnable接口 但它其实不是一个真正的线程。

 

 

 

实现Runnable接口的优点:

1.     可以继承别的类。省下一个继承的机会。

2.     可以实现资源共享。

以上是关于继承Thread和实现Runnable的区分的主要内容,如果未能解决你的问题,请参考以下文章

多线程的创建方式---继承Thread和实现Runnable

Java中的线程

Runnable接口和Thread类的区别

线程数

Runnable和Thread

Thread 和Runnable的区别