Java并发编程(一)—— FutureTask超详细教程

Source

一、前言

创建线程有几种方式?这个问题的答案应该是可以脱口而出的吧:

  • 继承 Thread
  • 实现 Runnable 接口

但这两种方式创建的线程是属于三无产品

  • 没有参数
  • 没有返回值
  • 没办法抛出异常

用着三无产品总是有一些弊端,其中没办法拿到返回值是最让人不能忍的,于是 Callable 就诞生了。

二、Callable

CallableJava 1.5 版本引入的特性:

在这里插入图片描述

Callable是一个泛型接口,里面只有一个call()方法,该方法可以返回泛型值V,使用起来就像这样:

import java.util.concurrent.