A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© せR3n、何必装纯 黑马帝   /  2011-11-11 22:38  /  1444 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在通过继承Thread创建的线程和通过实现Runnable接口创建的线程有什么区别吗?什么情况下使用继承Thread创建的线程,什么情况下使用实现Runnable接口创建的线程?

2 个回复

倒序浏览
使用Runnable接口创建线程
1.可以将CPU,代码和数据分开,形成清晰的模型
2.线程体run()方法所在的类可以从其它类中继承一些有用的属性和方法
3.有利于保持程序的设计风格一致
直接继承Thread类创建对象
1.Thread子类无法再从其它类继承(java语言单继承)。
2.编写简单,run()方法的当前对象就是线程对象,可直接操作。
因为java是单继承,所以要是类中用到继承的话,这时候就用使用Runnable接口创建线程
一般都会采用使用Runnable接口创建线程的方法。
回复 使用道具 举报
1.继承Thread类,需要重写父类的run()方法,其目的是规定线程的具体操作,否则线程就什么也不做,因为在父类的run()方法中没有任何操作语句,此种方法的优点是可以在子类中增加新的成员变量,使线程具有某种属性;也可以在子类中新增方法,是线程具有某种功能。
2. 实现 Runnable接口,将该类绑定到新建的Thread对象上,当线程启动后,目标对象就会自动调用接口中的run()方法。
一般都建议用第二种方法,因为java中的类是单继承的,一旦类继承了其他的类之后就能再继承thread了,而接口可以实现多个,而且操作起来更具有灵活性。

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马