本文源码基于jdk1.8 。
Runnale接口
我们看Thread类的定义知道,它实现了Runable接口
public class Thread implements Runnable {
...
}
而Runnable接口的定义如下:
@FunctionalInterface
public interface Runnable {
public abstract void run();
}
它只有一个抽象方法run。同时,该接口还被@FunctionalInterface注解标注,说明它是一个函数式接口(@FunctionalInterface是java 1.8版本之后引入的)。这意味着我们可以使用Lambda表达式来创建Runnable接口的实例,这个我们到后面再举例。
线程创建
在java中,创建一个线程,有且仅有一种方式:
创建一个Thread类实例,并调用它的start方法。
这写在了java语言规范中(参见The Java Language Specification, Java SE 8 Edition, P659,chapter17):
Threads are represented by the Thread class.