黑马程序员技术交流社区

标题: 有了Runable还有Thread存在的必要吗? [打印本页]

作者: wochaowoliuxing    时间: 2014-6-28 23:27
标题: 有了Runable还有Thread存在的必要吗?
有了Runable还有Thread存在的必要吗?
作者: 黎志勇    时间: 2014-6-28 23:31
有。没有Thread,谁帮你运行Runnable里面的run()方法?
作者: 卞新浩    时间: 2014-6-28 23:48
Runnable是继承threadf的子类把
作者: 且听风语    时间: 2014-6-28 23:52
当然有必要存在啊 thread才是线程 好吧 runable仅仅是提供了run方法的接口而已 没有thread 靠runable又不能创建线程和启动线程
作者: 多一点    时间: 2014-6-29 10:05
Thread 才是线程  thread有个构造方法,thread(Runnable run); Runnable 是一个接口 ,它里面有个抽象run()方法。而我们 在创建一个类实现Runnable 接口,子类并实现run方法。在创建线程就必须把这个子类的对象作为参数传给Thread,然后用Thread类的实例对象start()方法开启线程,执行Thread类中的run(),Thread方法中的run()方法会调用Runnable实现类中的run()方法.
其实:Thread类是Runnable 的实现类
作者: blz01003hm    时间: 2014-6-29 10:45
貌似先有Thread ,后有Runnable。
作者: 郑飞    时间: 2014-6-29 11:04
楼主你完全可以不用Thread写run(),但是Runnable的子类必须丢到Thread对象里去.
作者: Hugoo    时间: 2014-6-29 11:36
1、Runable里没有run(),而是规定implementing   class必须要有run(),而且Runnable的作用仅限于此;而Thread   class里有许多好用的method,比如sleep()等      2、当你发现必须extends其他某个class,而又要用线程,因为无法extends   Thread,所以要implements   Runnable      3、如果你的某个class   A   implements   Runnable,则不可以直接用这个class,只能用new   Thread(A)得到的thread   object      4、对thread   object,用start()来启动,该method会先initialize   thread   object,然后invoke它的run()      总之,使用Thread 需要用new Thread()或者new Thread(Runable target),就是说Runable的子类必须实现run()方法,并由一个Thread来用start()方法来调用Runable的run();
作者: yinxjfly    时间: 2014-6-29 19:39
没了Thread,要想休息一下怎么办!
作者: 七弦    时间: 2014-6-29 19:59
连已过时的方法都有存在的必要,你还想把Thread从java中剔除?
作者: rekirt    时间: 2014-6-29 23:14
一个是接口,一个是类,
作者: wochaowoliuxing    时间: 2014-6-30 09:29
rekirt 发表于 2014-6-29 23:14
一个是接口,一个是类,

Runable是不是已经实现了Thread的所有功能啊
作者: wochaowoliuxing    时间: 2014-6-30 09:31
yinxjfly 发表于 2014-6-29 19:39
没了Thread,要想休息一下怎么办!

Runable休息不了吗
作者: wochaowoliuxing    时间: 2014-6-30 09:35
Hugoo 发表于 2014-6-29 11:36
1、Runable里没有run(),而是规定implementing   class必须要有run(),而且Runnable的作用仅限于此;而Thre ...

很详细,学习了
作者: lucky_man    时间: 2014-6-30 09:52
Thread可以开启多线程,Runnable只是提供一个run方法。执行Runnable里面的run相当于是在执行run的构造方法,
作者: lucky_man    时间: 2014-6-30 09:56
Thread可以开启多线程,Runnable只是提供一个run方法。
执行Runnable里面的run相当于是在执行run的构造方法,而不是多线程。
只有通过Thread里start的开启多线程,才可以多线程并发执行
作者: yinxjfly    时间: 2014-6-30 12:37
wochaowoliuxing 发表于 2014-6-30 09:31
Runable休息不了吗

我记得一般休息是这么写,Thread.sleep()




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