Callable接口只有一个call方法
Future接口有get等方法
FutureTask类实现了RunnableFuture接口
RunnableFuture接口继承了Runnable和Future
总之:Runnable可以想象成一个没有参数和返回值的异步方法,Callable与Runnable类似,但是有返回值。
public static void main(String[] args) throws InterruptedException, ExecutionException {
Callable<Integer> task = new Callable<Integer>() {
@Override
public Integer call() throws Exception {
return 1;
}
};
FutureTask<Integer> futureTask = new FutureTask<>(task);
Thread t = new Thread(futureTask);
t.start();
for (int i = 0; i < 10; i++) {
System.out.println("main thread " + i);
}
Integer result = futureTask.get();
System.out.println("异步结果 "+result);
}
