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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 2012 中级黑马   /  2013-9-15 10:09  /  1368 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我知道java创建线程类的两中方式,一种是继承Thread类,一种是实现Runnable接口。
我不明白的地方是:在实际开发中,用那种方式好一些呢?
他们的性能上有很大的区别吗?
有的人说建议使用第二种,就是实现Runnable接口,这样推荐,只是为了避免java的单继承吗?
这两种方式在底层的实现有什么不同?
希望大神们能给我一点点好的建议。谢谢

评分

参与人数 1技术分 +1 收起 理由
薛鹏鹏 + 1

查看全部评分

4 个回复

倒序浏览
今天我也在学这个,说说我的理解哈。
按老师说的,实现方式是避免了单继承的局限性,例如:当一个A类已经继承了另一个B类,但是A类的类里面还有需要多线程,他就不能再去继承了,但是实现方式可以多实现,既能让A类继承B又能让A一个以上的多实现。
因为这两个方式的线程代码存放的地方不同,继承是放在Thread子类run方法中;
实现是放在runnable接口子类run方法中的,希望对你有所帮助。

评分

参与人数 1技术分 +1 收起 理由
特殊服务 + 1

查看全部评分

回复 使用道具 举报
  1.Runnable接口可以避免单继承的限制,要是继承Thread类的话,那么就不能继承其他的类了,因为只能单继承,如果实现了接口Runnale后,还可以继承其他的类,或是是实现其他的接口   
  
2.Runnable实现了资源的共享,例如(售票程序的票)
     

3.Runnable实增强了程序的健壮性,代码能够被多个程序共享,实现了数据 与代码是独立的。
     

4.实现Runnable接口的线程的运行代码存在实现Runnable接口子类的run()方法中,继承Thread类的线程的代码存在Thread子类的run()方法中。
  所以在以后的开发中,使用Runnble接口比较好,更多。

要是还不明白,请参考:点击

回复 使用道具 举报
实现Runnable接口这种方法的好处:避免了单继承的局限性,在定义线程是建议使用实现现Runnable接口方式。

两种方法的区别:
继承Thread类方式:线程代码存放在Thread子类的run方法中。
实现Runnable接口方式:线程代码存放在Runnable接口实现类run方法中。

我看视频刚解决这个问题
回复 使用道具 举报
本帖最后由 王广亚 于 2013-9-16 19:02 编辑

{:soso_e109:}都让你们说完了,我说什么!{:soso_e109:}
不过还得要说说,我感觉,除了上面所说的Runnable接口可以避免单继承的限制,还有一点就是一个类对象可以实现多个线程,这样就实现了数据的共享性,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马