一、前言
创建线程有几种方式?这个问题的答案应该是可以脱口而出的吧:
- 继承
Thread
类
- 实现
Runnable
接口
但这两种方式创建的线程是属于三无产品:
用着三无产品总是有一些弊端,其中没办法拿到返回值是最让人不能忍的,于是 Callable 就诞生了。
二、Callable
Callable
是 Java 1.5
版本引入的特性:
Callable
是一个泛型接口,里面只有一个call()
方法,该方法可以返回泛型值V
,使用起来就像这样:
import java.util.concurrent.