- 为什么Java语言同时提供Thread和Runnable?
- 相比于Runnable,线程的优点是什么(为什么Java不能只提供一个runnable)?
- 我们可以让一个Runnable睡眠、给它一个ID等吗?
Thread是一个类,当你调用start()
方法时,你创建了一个被附加到Thread实例的执行线程,并且会调用Runnable的run()
方法,使它在执行线程上执行任务,而start()
方法很快返回。
Runnable
是分配给新创建的执行线程的任务。
因此,如果没有Thread类,你就无法运行你的Runnable。
实现Runnable是建议的方式,因为如果您扩展Thread,则无法扩展其他任何内容(Java不支持多重继承)。您可以在类上拥有多个接口,因此您可以拥有Runnable +许多其他接口,并扩展另一个基类
您从Runnable的实例化中获取线程并使其休眠 - this.sleep()