用FutureTask来获取Future和任务的结果
    FutureTask是一种包装器,可以把Callable转换成Future和Runnable,它同时实现二者的接口
    所以它既可以作为Runnable被线程执行,又可以作为Future得到Callable的返回值
    image.png