Callable接口
FutureTask使用Callable接口 并且实现了RunnableFuture
RunnableFuture继承了Runnable
Thread实现了Runnable接口
public class CallableTest {
public static void main(String[] args) {
MyThread myThread = new MyThread();
//适配类
FutureTask<String> futureTask = new FutureTask<>(myThread);
try {
new Thread(futureTask).start();
//get这个方法可能会产生阻塞,一般把他放到最后
//或者使用异步通信的方式处理
String string = futureTask.get();
//Callable的返回结果
System.out.println(string);
} catch (Exception e) {
e.printStackTrace();
}
}
}
class MyThread implements Callable<String>{
@Override
public String call() throws Exception {
System.out.println("Callable");
return "2333";
}
}
总结
1.有缓存
2.结果可能需要等待,会阻塞