黑马程序员技术交流社区
标题:
线程的问题
[打印本页]
作者:
冷叙辰
时间:
2013-3-14 19:09
标题:
线程的问题
本帖最后由 冷叙辰 于 2013-3-15 12:30 编辑
创建线程有两种方式,继承类和实现接口,这两种方式的优缺点是什么,哪种比较好。
作者:
0.00
时间:
2013-3-14 19:18
继承有局限,一个线程执行完才执行下一个, 实现接口能抢夺资源,
作者:
王智威
时间:
2013-3-14 19:41
用接口的比较好,你可以去看看高手些的代码都是用接口的,因为这个体现了java的思想,用一个方法将你要执行的代码封装起来,是面向对象的体现。
作者:
李洪因
时间:
2013-3-14 20:34
第一种方式:使用Runnable接口创建线程
1.可以将CPU,代码和数据分开,形成清晰的模型
2.线程体run()方法所在的类可以从其它类中继承一些有用的属性和方法
3.有利于保持程序的设计风格一致
第二种方式:
1.直接继承Thread类创建对象1.Thread子类无法再从其它类继承(java语言单继承)。
2.编写简单,run()方法的当前对象就是线程对象,可直接操作。
第一种方式不能够独立运行,需要通过调用Thread对象的start()方法来执行线程。
第二种方式可以直接调用创建对象的start()方法执行,因为它本身就是Thread对象的子类。
作者:
沈子豪
时间:
2013-3-14 20:57
直接给你理下两者的区别,这样就能很好的了解两者的使用环境的区别了.在不同的题目要求下使用不同的方法,比如继承的成员方法可以是抽象的,也可以是非抽象的,而接口的成员方法必须都是抽象的.当我们需要操作相同具体的方法内容时,用继承就合适.而接口在多实现的情况下应用就比较多了.
A:成员区别
抽象类:构造方法 用于给子类实例化使用。
成员变量 既可以是常量,也可以是变量。
成员方法 既可以是抽象的,也可以是非抽象的。
接口:
成员变量 只能是常量。
默认修饰符 public static final
成员方法 只能是抽象方法
默认修饰符 public abstract
B:继承和实现的区别
类与类的关系:继承关系。单继承,可以多重继承。
类与接口的关系:实现关系。可以单实现,也可以多实现。还可以在继承一个类的同时,实现多个接口。
接口与接口的关系:继承关系。可以单继承,也可以多继承。
C:表述关系不一样:抽象类被继承是"is a"的关系
接口被实现是"like a"的关系
作者:
123
时间:
2013-3-14 20:57
使用继承Thread类的方法来创建线程类时,多个线程之间无法共享线程类的实例变量,而使用实现Runnable接口可以共享实例变量,像火车站卖票程序使用的就是实现Runnable接口的方式。这是最重要的区别。
作者:
tianyun
时间:
2013-3-14 21:03
由于java仅支持单继承,继承thread类后就不能在继承别的类了,而java支持接口多继承,实现ruannable后,不会影响该类的继承关系。
作者:
谢洋
时间:
2013-3-14 21:36
不管是使用Runable或者是Thread,都要可以实现数据的共享操作;
当采用Runable时,只不过是可以直共享数据放在Runable的子类对象中实现
如果采用Thread,我们可以把共享数据单独封装到一个类中,同时最好把这个为设为单例,再把共享对象传给Thread 的子类就可以了
对于使用那个更好,不清楚
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2