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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 秦大忠 中级黑马   /  2013-8-27 11:51  /  1206 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 潘才新 于 2013-9-4 22:03 编辑

在想一个问题,Runable 接口和Thread类到底有什么关系?求详细解答...

6 个回复

正序浏览
可以看下java 源码,API中也写到thread的run()方法的用途:如果该线程是使用独立的 Runnable 运行对象构造的,也就是通过new Thread(Runable r)定义的对象,则调用该 Runnable 对象的 run 方法;否则,该方法不执行任何操作并返回。 Thread 的子类应该重写该方法。


评分

参与人数 1技术分 +1 收起 理由
潘才新 + 1 赞一个!

查看全部评分

回复 使用道具 举报
亲,如问题已解决请将分类的“未解决”改为“已解决”。
以后的问题贴也要及时更改分类哦~
回复 使用道具 举报
你去看源码不就知道他们的关系了?
回复 使用道具 举报
这个就牵涉到创建线程的方法之一:
new Thread(Runable r).start();
也就是说在创建一个Thread对象时Thread类的构造函数可以接收实现Runable的类的对象,并可以在开始线程后调用实现Runable类的run方法。
回复 使用道具 举报
本帖最后由 嵿級↘莮紸角 于 2013-8-27 13:39 编辑

java是单继承的
Runnable接口是用来解决一旦类继承了别的类而不能继承Thread类或者继承了Thread类却不能在继承别的类的时候而设计的。关系是他们都是实现多线程的方式,只是Runnable比Thread较灵活而已
回复 使用道具 举报
1.每一个区别创建线程的方式不同:
第一种:
new Thread(Runable r).start();
第二种:
class MyThread extends Thread{实现run()};
new  MyThread().start();
2.用途不同.
你也可以用孙老的话这么理解"当不需要改变一个线程中除了run()方法之外的方法时,使用方式一"

评分

参与人数 1技术分 +1 收起 理由
潘才新 + 1 神马都是浮云

查看全部评分

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