黑马程序员技术交流社区

标题: 多线程中runnable和thread有什么区别了 [打印本页]

作者: 想成为黑马    时间: 2014-11-6 09:45
标题: 多线程中runnable和thread有什么区别了
感觉是一头雾水额
作者: 一叶障目    时间: 2014-11-6 10:05
创建线程的目的是为了开启一条执行路径,即运行指定的代码和当前代码实现同时运行,而运行的指定代码是该线程的任务。
java中用Thread类描述多线程,线程的任务则封装在Thread类的run()方法中;
所以当要开启一个多线程的时候,可以继承Thread类,并覆写其中的run方法;
但是该方式有一个局限性,因为java中的单继承模式,一个类如果已经有了父类,就不能继承Thread类,如果该类中有代码需要多个线程同时执行的话,继承已经不可能,只能对其进行额外的功能扩展,java中提供的Runnable接口就提供这样的功能,该接口中只有一个抽象的run()方法,即可以封装多线程代码的方法。
Runnable的出现是将不同类中需要被多线程运行的代码进行了抽取,将其单独封装成对象,为其它类进行功能扩展提供前提。
Thread类也是实现与Runnable接口;
因为实现Runnable接口可以避免单继承的局限性,所以一般创建线程多用实现方式。
作者: 杨佳名    时间: 2014-11-6 10:17
每次都是发N帖挣黑马币兑技术分.大家还这样耐心帮你,真的好意思吗?
刷帖后兑换技术分次数多了,我就不相信你是真的问问题了.
希望这是最后一次
作者: 小鸡捉你    时间: 2014-11-6 10:21
thread是实现了runnable的接口




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