继承 Thread 类 Thread类本质上是实现了Runnable接口的一个实例,代表一个线程的实例。启动线程的唯一方 法就是通过Thread类的start()实例方法。start()方法是一个native方法,它将启动一个新线 程,并执行run()方法。
public class MyThread extends Thread { public void run() { System.out.println(“MyThread.run()”); } } MyThread myThread1 = new MyThread(); myThread1.start();
实现 Runnable 接口。 如果自己的类已经extends另一个类,就无法直接extends Thread,此时,可以实现一个 Runnable接口。
public class MyThread extends OtherClass implements Runnable { public void run() { System.out.println(“MyThread.run()”); } }
Callable
有返回值的任务必须实现Callable接口,类似的,无返回值的任务必须Runnable接口。执行 Callable任务后,可以获取一个Future的对象,在该对象上调用get就可以获取到Callable任务 返回的Object了,再结合线程池接口ExecutorService就可以实现传说中有返回结果的多线程 了。