多线程-Callable
Callable是一个接口,作用和Runable相似。
Callable<Integer> callable = new Callable<Integer>() {
@Override
public Integer call() throws Exception {
int num = 0;
*****
return num;
}
}
FutureTask实现了RunnableFuture接口
RunableFuture接口继承了Future和Runnable接口

由于FutureTask实现了Runnable,所以他可以被当成Runnable传入Thread中。
public static void main(String[] args) throws ExecutionException, InterruptedException {
Callable<Integer> callable = () -> {
//实现的call方法
int num = 3;
return num;
};
FutureTask<Integer> futureTask = new FutureTask(callable);
Thread thread = new Thread(futureTask);
thread.start();
//线程执行结果 如果线程没有执行完,则获取方法会阻塞,知道线程执行完或抛出异常
Integer result = futureTask.get();
}