Future是在多线程系统中应用最多的一个功能, 在异步获取线程处理结果时, 提供了可取消, 可打断, 可超时, 可等待等诸多处理方式.
以如下代码示例,看下JDK是如何实现这些特性的....任务可取消, 可设置超时时间等待结果, 判断任务是否取消, 判断任务是否完成等操作.
public interface Future {
// 取消任务
boolean cancel(boolean...mayInterruptIfRunning);
// 判断是否任务已经取消
boolean isCancelled();
// 判断任务是否处理结束
boolean isDone...后续线程任务的所有执行,超时等操作都是基于FutureTask处理的....FutureTask执行流程
在一个异步处理流程中, Callable会被封装成FutureTask, 并最后由线程池分配线程执行, 这里先不考虑线程池是如何分配线程的.