黑马程序员技术交流社区

标题: 两种定义线程的问题 [打印本页]

作者: 唐志海    时间: 2013-11-21 13:59
标题: 两种定义线程的问题
本帖最后由 唐志海 于 2013-11-21 18:20 编辑

定义线程中有两个方法,什么时候用继承Thread?什么时候用实现Runnable接口呢?
作者: qw无语    时间: 2013-11-21 14:05
当一个类想要继承另外一个类的时候又要实现用多线程,所以就有了一个Runnable接口.
因为java不支持多继承,所以用接口处理了这个问题.
两者基本没区别.个人感觉项目一般都用Runnable接口.
作者: smileven    时间: 2013-11-21 14:09
创建线程有两种方式,一种继承Thread类,一种实现Runnable接口。

java是只支持单继承的,也就是说一个子类只能继承一个父类。
所以如果这个类只需要继承Thread类,那么继承Thread类和实现Runnable类都可以。
但是如果这个类还要继承其他的类,那么只能使用Runnable接口的形式。

其他方面Thread类和Runnable没有明确的使用要求和区别。
但是一般都建议使用Runnable接口的形式,这样有利于以后程序的扩展。

作者: 汪洋大海    时间: 2013-11-21 15:38
因为java不支持多继承。所以当一个类继承了别的类,但是它又要用多线程。所以就出了一个Runnable
作者: 荣晓鹤    时间: 2013-11-21 15:48
继承Thread类,通过编写线程继承thread类,重写run()方法来实现线程,这个类是在java.lang包中定义的,但是一个类只能继承一个父类,这个方法有这个局限。     直接实现Runnable多线程接口,Runnable只有一个抽象方法run ,并没有start()方法,也就是说要通过Thread类来启动Runnable实现的多线程。不过这个避免了继承的局限。一个类可以继承多个接口。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2