咱们看看源码中对与Thread类的部分声明java
public class Thread implements Runnable { /* Make sure registerNatives is the first thing <clinit> does. */ private static native void registerNatives(); static { registerNatives(); } private volatile String name; ...
如今是否是很清楚了,Thread 类是实现了Runnable接口的。多线程
方法步骤总结:spa
Thread类有一个Thread(Runnable target)构造方法,在Runable接口类中只有一个run()方法。线程
当使用Thread(Runnable target)方法建立线程对象时,须要为该方法传递一个实现 Runnable接口的对象,这样建立的线程将调用那个实现了Runnable接口类对象中的run()方法做为其运行代码,而再也不是调用Thread类中的run方法了。code
方法步骤总结:对象
注意:启动一个新的线程,不是直接调用Thread子类的对象的run方法,而是调用Thread子类对象的start方法。继承
start方法是从Thread类中继承的方法,Thread类对象的start方法将产生一个新的线程,并在该线程上运行该Thread类对象中的run方法。接口
根据面向对象的多态性可知,在该线程上实际运行的是咱们编写的那个类(Thread的子类)对象中的run方法。get