继承Thread类的启动方式: Java代码 public class ThreadStartTest { public static void main(String[] args) { // 创建一个线程实例 ThreadTest tt = new ThreadTest(); // 启动线程 tt.start(); } }
实现Runnable接口的启动方式: Java代码 public class RunnableStartTest { public static void main(String[] args) { // 创建一个线程实例 Thread t = new Thread(new RunnableTest()); // 启动线程 t.start(); } }
实际上这两种启动线程的方式原理是一样的。首先都是调用本地方法启动一个线程,其次是在这个线程里执行目标对象的run()方法。那么这个目标对象是什么呢?为了弄明白这个问题,我们来看看Thread类的run()方法的实现: Java代码 public void run() { if (target != null) { target.run(); } }