继承Thread和实现Runnable的区分

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

方式一:

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

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

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

一个比较生动的比如:

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

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

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

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

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

实现Runnable接口的优点:

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

2.     可以实现资源共享。

原文地址:https://www.cnblogs.com/wlm-boke/p/8550691.html