( Java 面试题 / Java 学习指南 )
其实 Thread 和 Runable 没太大联系。
※ Runnable
Runnable 则是一个接口,一个通用的接口。
什么叫通用接口?
就是在你要自定义一个接口时,如果想不到合适的名字,则可以直接用Runnable。
比如,在 Swing高级篇 里,我们经常要自定义接口。比如,定义一个
public interface ClickListener
{
public void clicked();
}
其实呢,咱们不一定要自己定一个接口的,你定义的这个和Runnable有啥区别呢?
public interface Runnable
{
public void run();
}
就是名字变了,本质上没有区别。所以,我们可以直接使用Runnable,而不需要自己定义接口。
※ Thread
Thread是一个类,用于创建线程。
看一下JDK的文档,可以看到
Class Thread
All Implemented Interfaces:
Runnable
也就是说,Thread类实现了Runnable接口,所以不少人觉得Thread和Runnable有关系。其实没有太大的关系。
创建线程的时候,总是Thread,因为Thread代表一个线程。( 当然,Timer也算是一个线程,另当别论 )