黑马程序员技术交流社区
标题:
多线程问题求助?
[打印本页]
作者:
易伟
时间:
2012-2-6 11:51
标题:
多线程问题求助?
本帖最后由 易伟 于 2012-2-6 12:24 编辑
在多线程中,我们可以继承Thread复写run方法,也可以继承runnable复写run方法。那什么时候继承runnable比较好了,直接继承runnable有什么优点呢???
作者:
曾辉
时间:
2012-2-6 11:57
java编程要面向接口而非基类 所以规范的编程方法是实现runnable接口
不过实际编程中,就看你自己怎么写省事了
比如你写的一个MyClass类 它不需要再继承其他的父类 而只需作为一个线程存在 那么你完全可以继承thread类来实现线程
但是,如果MyClass类自己本身有其他的父类 那么你就不能再使用继承的方法拉.. 因为java不支持多继承 所以你只能实现runnable接口咧..
作者:
刘基军
时间:
2012-2-6 11:59
Java可以多implements,而只能单extends
作者:
秦碧
时间:
2012-2-6 12:07
1. 在毕老师第11天售票的例子中 可以知道 如果多个线程共享数据
若使用Thread类继承,则需要使用静态成员,而静态成员随着类的加载而加载,其存活时间长,需要占用较多的资源
而如果实现Runnable接口,则不需要将其静态化。
2. 如果以个类B,是A的子类,这时他若想使用多线程
由于java中只支持单extends,则需要用B实现Runable接口
作者:
黑马唐浩
时间:
2012-2-6 12:14
java只支持单继承,因此如果是采用继承Thread的方法,那么在以后进行代码重构的时候可能会遇到问题,因为你无法继承别的类了.
同理,java对一个类实现接口数目没有限定。可想而知,实现接口的优势了。
作者:
易伟
时间:
2012-2-6 12:23
谢谢大家,我懂了。
作者:
任奇
时间:
2012-2-6 12:58
Thread要继承,这样的话你就不可以继承其他的类了。Runnable只需要实现,你同时可以继承其他的类,也可以实现其他的类。
作者:
彭嘉聪
时间:
2012-2-6 13:20
Runnable的好处是,
线程功能变成了这个对象的额外功能,
线程调用的时候是调用这个对象的run方法里面的代码
这样有利于保持了体系并增加了额外的功能。
一般推荐用实现Runnable接口
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2