Thread over Runnable的优点

时间:2012-08-18 17:38:44

标签: java multithreading

  

可能重复:
  Java: “implements Runnable” vs. “extends Thread”

1)为什么Java语言同时提供Thread和Runnable? 2)线程超过runnable有什么好处(为什么Java只能提供runnable) 3)我们可以进行可运行的睡眠,给它一个id等吗?

2 个答案:

答案 0 :(得分:8)

1。线程是一个类,当您说.start()时,您创建一个附加到线程类实例的thread of execution 调用Runnable的run()方法,使其执行 thread of execution上的任务,start()方法快速返回。

2。 Runnable是分配给task的{​​{1}}。

3。所以没有Thread类,你就无法运行Runnable。

答案 1 :(得分:4)

1)线程是一个类并包含功能 - 而runnable是一个接口,因此只是实现类遵循的“契约”。由于Runnable只是一个接口,您需要实例化一个线程来包含它。而线程已经包含产生线程的能力。

2)实现Runnable是建议的方法,因为如果扩展Thread,则不能扩展其他任何东西(Java不支持多重继承)。您可以在一个类上有多个接口,因此您可以拥有Runnable +许多其他接口,并且还可以扩展另一个基类

3)你从Runnable的实例化中获取线程并使其休眠 - this.sleep()