黑马程序员技术交流社区

标题: 多线程问题 [打印本页]

作者: 武超    时间: 2011-12-6 22:24
标题: 多线程问题
本帖最后由 武超 于 2011-12-8 16:25 编辑

继承Thread类和实现Runnable接口有什么不同?
作者: 颜小飞    时间: 2011-12-6 22:53
这两种方式都能够产生线程,但使用接口的方式更灵活性。一个类可以实现多个接口,而只能继承一个类。能够使用接口编程时,尽量使用面向接口的编程方式,显得更面向对象一些。
作者: 段波    时间: 2011-12-6 23:18
继承Thread类和实现Runnable接口都是创建一个线程的方式,只不过java中是单继承,如果你想创建一个线程,同时以想继承一个类(Thread以外的类)那么用实现Runnable接口的方法来创建一个线程将是非常好的选择。可以这么说,实现Runnable接口比继承Thread要好得多。它可以适合多个相同程序代码的线程去处理同一资源的情况,把线程同程序的代码,数据有效分离,更加面向对象。几乎所有的多线程应用都可以用实现Runnable接口的方式实现,所以我个人强烈建议使用Runnable的方式
作者: 小春同学    时间: 2011-12-6 23:19
一、如果你的程序只想重写run()方法,建议使用Runnable()接口,方便你的类现在或将来需要继承其它类;
二、如果你打算修改或增强现有类的基本行为。可以考虑创建一个Thread的子类,
通常情况下,一般使用实现Runnable()接口的方法
作者: 赵燕燕    时间: 2011-12-7 10:05
Java是单继承的,只能继承一个类,当一个类继承了Thread之后就不能再继承其它的类了,但这个类同时可能需要继承另一个类。例如:
class Student extends Person{ }
class Student extends Thread{ }
这是不正确的,但在java中,一个类在继承了另一个类的同时可实现多个接口。所以要使用接口:class Student extends Person implements Runnable{ }
这样既继承了类,又能使用多线程。
作者: 武超    时间: 2011-12-7 12:18
段波 发表于 2011-12-6 23:18
继承Thread类和实现Runnable接口都是创建一个线程的方式,只不过java中是单继承,如果你想创建一个线程,同 ...

那是不是说可以舍弃继承Thread类,需要采用多线程时全部都用实现Runnable接口?
作者: 段波    时间: 2011-12-7 12:22
当然不是,存在肯定是有它的价值的,继承Thread类创建多线程会比实现Runnable接口来得快点,如果不考虑数据被多个线程共享的问题,用Thread还是不错的。
作者: 武超    时间: 2011-12-8 16:25
啊  明白了  谢谢




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