线程创建的方式
根据JDK中 Thread 类的注释, Java 中新建线程只有2种方式,一种是继承自Thread类,一种是实现Runnable接口。
Callable基础用法
public class CallableUsage { static class CallableTest implements Callable<String> { @Override public String call() { System.out.println(Thread.currentThread().getName()); return "Callable"; } } public static void main(String[] args) { FutureTask<String> futureTask = new FutureTask<>(new CallableTest()); new Thread(futureTask).start(); } }
实现Callable接口并不是创建线程的方式,原因是Callable使用需要构造一个FutureTask对象,FutureTask类图如下,它实际继承了Runnable接口。