继承Thread和实现Runnable的区分
继承方式和实现接口方式 还是存在一定差异。比如售票,接口做 没有毛病,继承有点小问题 。暂时不明白 是哪里的问题=。
方式一:
实现接口:new Thread(类的实例)。才可以点出开始方法。
currentThread():获取当前线程对象
我们利用单个Runnable实例r来创建了两个线程,那么这两个线程操作的其实都是实例r里面的属性和方法,所以能实现资源共享。
一个比较生动的比如:
Runnable实例r就像一个苹果,利用它创建的线程就像小虫子,咬的都是这个苹果。
那么,从上面可以看出来属性共享的范围:
只有用同一个Runnable实例创建的线程才有属性共享这个特性。
通过继承Thread来实现多线程:覆盖run方法。用start()方法创建线程并执行run方法。
Java中是单继承的,那么这么好的一个继承机会就给了它,是一个缺陷,java官方后来给出了一种实现接口的方法来实现多线程。就是实现Runnable接口 但它其实不是一个真正的线程。
实现Runnable接口的优点:
1. 可以继承别的类。省下一个继承的机会。
2. 可以实现资源共享。